From 1eadd2a7de95c26e48425e4262cbfd21f4da34de Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Fri, 29 May 2015 14:45:06 +0000 Subject: deployment --- pedro-openstack.morph | 107 ++++++++++++++++++ pedro-swift.morph | 200 ++++++++++++++++++++++++++++++++++ systems/openstack-system-x86_64.morph | 2 + 3 files changed, 309 insertions(+) create mode 100644 pedro-openstack.morph create mode 100644 pedro-swift.morph diff --git a/pedro-openstack.morph b/pedro-openstack.morph new file mode 100644 index 00000000..1243a033 --- /dev/null +++ b/pedro-openstack.morph @@ -0,0 +1,107 @@ +name: openstack-one-node +kind: cluster +description: | + This is a cluster morphology for deploying a x86_64 OpenStack system + all-in-one-node. + + Requirements to be able to run and test the system: + + - DISK_SIZE should be bigger than 5G + - The system has to have available at least 4G of RAM, but once + you start instantiating VMs you will need more. + - The IP of the system can't change, and you need to know it beforehand, + that is, the system needs a static IP address. + + This cluster is configurable, but with the following constraints: + + - The hostname in RABBITMQ_HOST has to match CONTROLLER_HOST_ADDRESS, + and HOST_CONTROLLER. + - HOSTS_CONTROLLER is only needed if the hostname (see previous point) + is not a FQDN. + - The IP listed in MANAGEMENT_INTERFACE_IP_ADDRESS has to match the one + used in HOSTS_CONTROLLER. + - CINDER_DEVICE should be a path to a storage device ready to be + used/formated for cinder data. + - EXTERNAL_INTERFACE is required when the system has more than one network + interface. + + You can also have a look at the following suggestions: + + - NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the + system is being deployed to. + - We recommend changing all the PASSWORDs variables, also the + KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and + METERING_SECRET + - Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure + Nova to schedule baremetal machines through the Ironic driver, instead of + sheduling virtual machines. + +systems: +- morph: systems/openstack-system-x86_64.morph + deploy: + release: + type: kvm + location: kvm+ssh://franred@10.24.1.78/pedro-openstack/home/franred/pedro-openstack.img + DISK_SIZE: 10G + RAM_SIZE: 6G + INSTALL_FILES: openstack/manifest + + HOSTNAME: controller + + RABBITMQ_HOST: controller + RABBITMQ_PORT: 5672 + RABBITMQ_USER: rabbitmq + RABBITMQ_PASSWORD: veryinsecure + + CONTROLLER_HOST_ADDRESS: controller + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.24.2.21 + + KEYSTONE_ENABLE_SERVICE: True + KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8 + KEYSTONE_ADMIN_PASSWORD: veryinsecure + KEYSTONE_DB_USER: keystoneDB + KEYSTONE_DB_PASSWORD: veryinsecure + + GLANCE_ENABLE_SERVICE: True + GLANCE_SERVICE_USER: glance + GLANCE_SERVICE_PASSWORD: veryinsecure + GLANCE_DB_USER: glanceDB + GLANCE_DB_PASSWORD: veryinsecure + + NOVA_SERVICE_USER: nova + NOVA_SERVICE_PASSWORD: veryinsecure + NOVA_DB_USER: novaDB + NOVA_DB_PASSWORD: veryinsecure + NOVA_VIRT_TYPE: qemu + NOVA_BAREMETAL_SCHEDULING: no + + CINDER_SERVICE_USER: cinder + CINDER_SERVICE_PASSWORD: veryinsecure + CINDER_DB_USER: cinderDB + CINDER_DB_PASSWORD: veryinsecure + # Storage device to be used by Cinder + CINDER_DEVICE: /dev/sdb + + NEUTRON_SERVICE_USER: neutron + NEUTRON_SERVICE_PASSWORD: veryinsecure + NEUTRON_DB_USER: neutronDB + NEUTRON_DB_PASSWORD: veryinsecure + METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret + + IRONIC_ENABLE_SERVICE: True + IRONIC_SERVICE_USER: ironic + IRONIC_SERVICE_PASSWORD: veryinsecure + IRONIC_DB_USER: ironicDB + IRONIC_DB_PASSWORD: veryinsecure + + CEILOMETER_SERVICE_USER: ceilometer + CEILOMETER_SERVICE_PASSWORD: veryinsecure + CEILOMETER_DB_USER: ceilometerDB + CEILOMETER_DB_PASSWORD: veryinsecure + METERING_SECRET: insecureceilometersecret + + HOSTS_CONTROLLER: 10.24.2.21 controller + + # Network interface to be used, only needed if there are more + # than one available. + # EXTERNAL_INTERFACE: eno1 diff --git a/pedro-swift.morph b/pedro-swift.morph new file mode 100644 index 00000000..9df32a7f --- /dev/null +++ b/pedro-swift.morph @@ -0,0 +1,200 @@ +name: openstack-one-node +kind: cluster +description: | + This is a cluster morphology for deploying a x86_64 OpenStack system + all-in-one-node. + + Requirements to be able to run and test the system: + + - DISK_SIZE should be bigger than 5G + - The system has to have available at least 4G of RAM, but once + you start instantiating VMs you will need more. + - The IP of the system can't change, and you need to know it beforehand, + that is, the system needs a static IP address. + + This cluster is configurable, but with the following constraints: + + - The hostname in RABBITMQ_HOST has to match CONTROLLER_HOST_ADDRESS, + and HOST_CONTROLLER. + - HOSTS_CONTROLLER is only needed if the hostname (see previous point) + is not a FQDN. + - The IP listed in MANAGEMENT_INTERFACE_IP_ADDRESS has to match the one + used in HOSTS_CONTROLLER. + - CINDER_DEVICE should be a path to a storage device ready to be + used/formated for cinder data. + - EXTERNAL_INTERFACE is required when the system has more than one network + interface. + + You can also have a look at the following suggestions: + + - NOVA_VIRT_TYPE can be either 'kvm' or 'qemu', depending on where the + system is being deployed to. + - We recommend changing all the PASSWORDs variables, also the + KEYSTONE_TEMPORARY_ADMIN_TOKEN, METADATA_PROXY_SHARED_SECRET and + METERING_SECRET + - Setting NOVA_BAREMETAL_SCHEDULING with an YAML truth value will configure + Nova to schedule baremetal machines through the Ironic driver, instead of + sheduling virtual machines. + +systems: +- morph: systems/openstack-system-x86_64.morph + deploy: + release: + type: kvm + location: kvm+ssh://franred@10.24.1.78/pedro-swift-controller/home/franred/pedro-swift-controller.img + DISK_SIZE: 10G + RAM_SIZE: 3G + INSTALL_FILES: openstack/manifest swift/manifest + + HOSTNAME: controller + ######################################################################### + ## Swift config options + ######################################################################### + + SWIFT_CONTROLLER: True + + SWIFT_ADMIN_PASSWORD: changeme + + SWIFT_PART_POWER: 10 + SWIFT_REPLICAS: 3 + SWIFT_MIN_PART_HOURS: 1 + + SWIFT_STORAGE_DEVICES: [{ ip: 10.0.0.2, device: sdb, weight: 100 }, + { ip: 10.0.0.2, device: sdc, weight: 100 }, + { ip: 10.0.0.2, device: sdd, weight: 100 }, + + { ip: 10.0.0.3, device: sdb, weight: 100 }, + { ip: 10.0.0.3, device: sdc, weight: 100 }, + { ip: 10.0.0.3, device: sdd, weight: 100 }] + + # This value can be any random string or number + # but each node in your Swift cluster must have the same values + SWIFT_REBALANCE_SEED: 3828 + + # NOTE: Replace SWIFT_HASH_PATH_PREFIX and SWIFT_HASH_PATH_SUFFIX + # with your own unique values, + # + # `openssl rand -hex 10' can be used to generate unique values + # + # These values should be kept secret, do not lose them. + # + SWIFT_HASH_PATH_PREFIX: 041fc210e4e1d333ce1d + SWIFT_HASH_PATH_SUFFIX: 4d6f5362a356dda7fb7d + + ################################################################### + + RABBITMQ_HOST: controller + RABBITMQ_PORT: 5672 + RABBITMQ_USER: rabbitmq + RABBITMQ_PASSWORD: veryinsecure + + CONTROLLER_HOST_ADDRESS: controller + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.24.2.21 + + KEYSTONE_ENABLE_SERVICE: True + KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8 + KEYSTONE_ADMIN_PASSWORD: veryinsecure + KEYSTONE_DB_USER: keystoneDB + KEYSTONE_DB_PASSWORD: veryinsecure + + GLANCE_ENABLE_SERVICE: True + GLANCE_SERVICE_USER: glance + GLANCE_SERVICE_PASSWORD: veryinsecure + GLANCE_DB_USER: glanceDB + GLANCE_DB_PASSWORD: veryinsecure + + NOVA_SERVICE_USER: nova + NOVA_SERVICE_PASSWORD: veryinsecure + NOVA_DB_USER: novaDB + NOVA_DB_PASSWORD: veryinsecure + NOVA_VIRT_TYPE: qemu + NOVA_BAREMETAL_SCHEDULING: no + + CINDER_SERVICE_USER: cinder + CINDER_SERVICE_PASSWORD: veryinsecure + CINDER_DB_USER: cinderDB + CINDER_DB_PASSWORD: veryinsecure + # Storage device to be used by Cinder + CINDER_DEVICE: /dev/sdb + + NEUTRON_SERVICE_USER: neutron + NEUTRON_SERVICE_PASSWORD: veryinsecure + NEUTRON_DB_USER: neutronDB + NEUTRON_DB_PASSWORD: veryinsecure + METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret + + IRONIC_ENABLE_SERVICE: True + IRONIC_SERVICE_USER: ironic + IRONIC_SERVICE_PASSWORD: veryinsecure + IRONIC_DB_USER: ironicDB + IRONIC_DB_PASSWORD: veryinsecure + + CEILOMETER_SERVICE_USER: ceilometer + CEILOMETER_SERVICE_PASSWORD: veryinsecure + CEILOMETER_DB_USER: ceilometerDB + CEILOMETER_DB_PASSWORD: veryinsecure + METERING_SECRET: insecureceilometersecret + + HOSTS_CONTROLLER: 10.24.2.21 controller + + # Network interface to be used, only needed if there are more + # than one available. + EXTERNAL_INTERFACE: ens3 + + + NETWORK_CONFIG: ens3:dhcp;ens6:static,address=10.0.0.1,netmask=255.255.255.0 + +- morph: systems/swift-system-x86_64.morph + deploy-defaults: + INSTALL_FILES: swift/manifest + + CONTROLLER_HOST_ADDRESS: 10.0.0.1 + + SWIFT_PART_POWER: 10 + SWIFT_REPLICAS: 3 + SWIFT_MIN_PART_HOURS: 1 + + SWIFT_STORAGE_DEVICES: [{ ip: 10.0.0.2, device: sdb, weight: 100 }, + { ip: 10.0.0.2, device: sdc, weight: 100 }, + { ip: 10.0.0.2, device: sdd, weight: 100 }, + + { ip: 10.0.0.3, device: sdb, weight: 100 }, + { ip: 10.0.0.3, device: sdc, weight: 100 }, + { ip: 10.0.0.3, device: sdd, weight: 100 }] + + # This value can be any random string or number + # but each node in your Swift cluster must have the same value + SWIFT_REBALANCE_SEED: 3828 + + # NOTE: Replace SWIFT_HASH_PATH_PREFIX and SWIFT_HASH_PATH_SUFFIX + # with your own unique values, + # + # `openssl rand -hex 10' can be used to generate unique values + # + # These values should be kept secret, do not lose them. + # + SWIFT_HASH_PATH_PREFIX: 041fc210e4e1d333ce1d + SWIFT_HASH_PATH_SUFFIX: 4d6f5362a356dda7fb7d + + FSTAB_SDC: /dev/sdb /srv/node/sdb xfs noatime,nodiratime,rw 0 0 + FSTAB_SDD: /dev/sdc /srv/node/sdc xfs noatime,nodiratime,rw 0 0 + FSTAB_SDE: /dev/sdd /srv/node/sdd xfs noatime,nodiratime,rw 0 0 + + + deploy: + node0: + type: kvm + location: kvm+ssh://franred@10.24.1.78/pedro-swift-storage-0/home/franred/pedro-swift-storage-0.img + DISK_SIZE: 10G + RAM_SIZE: 1G + HOSTNAME: swift-storage-0 + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.2 + NETWORK_CONFIG: ens3:dhcp;ens6:static,address=10.0.0.2,netmask=255.255.255.0 + node1: + type: kvm + location: kvm+ssh://franred@10.24.1.78/pedro-swift-storage-1/home/franred/pedro-swift-storage-1.img + DISK_SIZE: 10G + RAM_SIZE: 1G + HOSTNAME: swift-storage-1 + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3 + NETWORK_CONFIG: ens3:dhcp;ens6:static,address=10.0.0.3,netmask=255.255.255.0 diff --git a/systems/openstack-system-x86_64.morph b/systems/openstack-system-x86_64.morph index 8ab38bee..a8edf305 100644 --- a/systems/openstack-system-x86_64.morph +++ b/systems/openstack-system-x86_64.morph @@ -83,3 +83,5 @@ configuration-extensions: - fstab - openstack-ironic - install-essential-files +- swift-storage +- openstack-swift-controller -- cgit v1.2.1