diff options
Diffstat (limited to 'unmaintained/clusters')
-rw-r--r-- | unmaintained/clusters/cephclient.morph | 20 | ||||
-rw-r--r-- | unmaintained/clusters/example-ceph-cluster-on-openstack.morph | 55 | ||||
-rw-r--r-- | unmaintained/clusters/example-swift-storage-cluster.morph | 62 | ||||
-rw-r--r-- | unmaintained/clusters/openstack-one-node-swift.morph | 142 | ||||
-rw-r--r-- | unmaintained/clusters/openstack-one-node.morph | 104 | ||||
-rw-r--r-- | unmaintained/clusters/openstack-three-node-installer.morph | 238 | ||||
-rw-r--r-- | unmaintained/clusters/openstack-two-node-installer.morph | 199 | ||||
-rw-r--r-- | unmaintained/clusters/xfce-system-x86_64-deploy.morph | 23 | ||||
-rw-r--r-- | unmaintained/clusters/zookeeper.morph | 21 |
9 files changed, 864 insertions, 0 deletions
diff --git a/unmaintained/clusters/cephclient.morph b/unmaintained/clusters/cephclient.morph new file mode 100644 index 00000000..ad680a76 --- /dev/null +++ b/unmaintained/clusters/cephclient.morph @@ -0,0 +1,20 @@ +name: cephclient +kind: cluster +systems: +- morph: unmaintained/systems/ceph-service-x86_64-generic.morph + deploy: + ceph-node-virtualbox-image: + type: extensions/virtualbox-ssh + SYSTEM: systems/ceph-service-x86_64-generic.morph + location: vbox+ssh://user@machine/ChefNode4/home/user/chefnode4.vdi + # HOST_IPADDR and NETMASK should be set to the IP address and netmask of the virtualbox host on the host-only interface. + #HOST_IPADDR: 10.0.100.100 + #NETMASK: 255.255.255.0 + + # This is an example of how to configure the three interfaces necessary to support ceph in the BCPC configuration. + #NETWORK_CONFIG: lo:loopback;enp0s3:static,address=10.0.100.14,netmask=255.255.255.0;enp0s8:static,address=172.16.100.14,netmask=255.255.255.0;enp0s9:static,address=192.168.100.14,netmask=255.255.255.0 + DISK_SIZE: 8G + HOSTNAME: CephNode4 + + # You must install authorized_keys in chef/root/.ssh/ before this will work. + INSTALL_FILES: install-files/chef/manifest diff --git a/unmaintained/clusters/example-ceph-cluster-on-openstack.morph b/unmaintained/clusters/example-ceph-cluster-on-openstack.morph new file mode 100644 index 00000000..73f6729c --- /dev/null +++ b/unmaintained/clusters/example-ceph-cluster-on-openstack.morph @@ -0,0 +1,55 @@ +name: example-ceph-cluster-on-openstack +kind: cluster +description: | + This cluster morphology will deploy a 3 node ceph storage cluster to an + openstack server. + + It was written for use with the following guide on the baserock wiki: + http://wiki.baserock.org/guides/ceph-cluster-deploy/ + + See this guide for more information. + + See the ceph.configure file for more informatiion on the ceph + specific fields used in this cluster morphology. + +systems: +- morph: unmaintained/systems/ceph-service-x86_64-generic.morph + deploy: + ceph-mon-0-openstack: + # openstack info + <<: &common-config + type: openstack + location: http://<BASEROCK_OPENSTACK_SERVER_IP>:5000/v2.0/ + OPENSTACK_USER: demo + OPENSTACK_PASSWORD: demo + OPENSTACK_TENANT: demo + CLOUD_INIT: true + KERNEL_ARGS: console=ttyS0 console=tty0 + CEPH_CLUSTER: ceph + CEPH_CONF: ceph.conf + CEPH_CLIENT_ADMIN: ceph.client.admin.keyring + CEPH_MON_IP: <CEPH_MON_IP> + CEPH_CLUSTER_FSID: <CEPH_CLUSTER_FSID> + + OPENSTACK_IMAGENAME: mon-0-nd + DISK_SIZE: 10G + # Ceph info + HOSTNAME: mon-0 + CEPH_MON: + ceph-osd-0-openstack: + <<: *common-config + OPENSTACK_IMAGENAME: osd-0 + DISK_SIZE: 7G + # ceph info + HOSTNAME: osd-0 + CEPH_OSD: + CEPH_OSD_STORAGE_DEV: /dev/vdb + ceph-osd-1-openstack: + <<: *common-config + OPENSTACK_IMAGENAME: osd-1 + DISK_SIZE: 7G + # ceph info + HOSTNAME: osd-1 + + CEPH_OSD: + CEPH_OSD_STORAGE_DEV: /dev/vdb diff --git a/unmaintained/clusters/example-swift-storage-cluster.morph b/unmaintained/clusters/example-swift-storage-cluster.morph new file mode 100644 index 00000000..42f52d8a --- /dev/null +++ b/unmaintained/clusters/example-swift-storage-cluster.morph @@ -0,0 +1,62 @@ +name: example-swift-storage-cluster +kind: cluster +systems: +- morph: unmaintained/systems/swift-system-x86_64.morph + deploy-defaults: + INSTALL_FILES: install-files/swift/manifest + + CONTROLLER_HOST_ADDRESS: <controller host address> + + SWIFT_PART_POWER: 10 + SWIFT_REPLICAS: 3 + SWIFT_MIN_PART_HOURS: 1 + + SWIFT_STORAGE_DEVICES: + - {ip: <node0 management ip>, device: sdb, weight: 100} + - {ip: <node0 management ip>, device: sdc, weight: 100} + - {ip: <node0 management ip>, device: sdd, weight: 100} + - {ip: <node1 management ip>, device: sdb, weight: 100} + - {ip: <node1 management ip>, device: sdc, weight: 100} + - {ip: <node1 management ip>, 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_SDB: /dev/sdb /srv/node/sdb xfs defaults,user,rw 0 0 + FSTAB_SDC: /dev/sdc /srv/node/sdc xfs defaults,user,rw 0 0 + FSTAB_SDD: /dev/sdd /srv/node/sdd xfs defaults,user,rw 0 0 + + deploy: + node0: + type: extensions/kvm + location: kvm+ssh://user@host/swift-storage-0/home/user/swift-storage-0.img + DISK_SIZE: 10G + RAM_SIZE: 1G + VCPUS: 1 + HOSTNAME: swift-storage-0 + NIC_CONFIG: network=default + NETWORK_CONFIG: ens3:static,address=<node0 management ip>,netmask=255.255.255.0 + MANAGEMENT_INTERFACE_IP_ADDRESS: <node0 management ip> + ATTACH_DISKS: /dev/node0_sdb:/dev/node0_sdc:/dev/node0_sdd + node1: + type: extensions/kvm + location: kvm+ssh://user@host/swift-storage-1/home/user/swift-storage-1.img + DISK_SIZE: 10G + RAM_SIZE: 1G + VCPUS: 1 + HOSTNAME: swift-storage-1 + NIC_CONFIG: network=default + NETWORK_CONFIG: ens3:static,address=<node1 management ip>,netmask=255.255.255.0 + MANAGEMENT_INTERFACE_IP_ADDRESS: <node1 management ip> + ATTACH_DISKS: /dev/node1_sdb:/dev/node1_sdc:/dev/node1_sdd diff --git a/unmaintained/clusters/openstack-one-node-swift.morph b/unmaintained/clusters/openstack-one-node-swift.morph new file mode 100644 index 00000000..b9d6502b --- /dev/null +++ b/unmaintained/clusters/openstack-one-node-swift.morph @@ -0,0 +1,142 @@ +name: openstack-one-node-swift +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: unmaintained/systems/openstack-system-x86_64.morph + deploy: + release: + type: extensions/rawdisk + location: baserock-openstack-system-x86_64.img + DISK_SIZE: 10G + INSTALL_FILES: install-files/openstack/manifest install-files/swift/manifest + + HOSTNAME: onenode + + ######################################################################### + ## Swift config options + ######################################################################### + + SWIFT_CONTROLLER: true + + SWIFT_ADMIN_PASSWORD: insecure + + SWIFT_PART_POWER: 10 + SWIFT_REPLICAS: 3 + SWIFT_MIN_PART_HOURS: 1 + + SWIFT_STORAGE_DEVICES: + - {ip: <storage node 0 management ip>, device: sdb, weight: 100} + - {ip: <storage node 0 management ip>, device: sdc, weight: 100} + - {ip: <storage node 0 management ip>, device: sdd, weight: 100} + - {ip: <storage node 1 management ip>, device: sdb, weight: 100} + - {ip: <storage node 1 management ip>, device: sdc, weight: 100} + - {ip: <storage node 1 management ip>, 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: onenode + RABBITMQ_PORT: 5672 + RABBITMQ_USER: rabbitmq + RABBITMQ_PASSWORD: veryinsecure + + CONTROLLER_HOST_ADDRESS: onenode + MANAGEMENT_INTERFACE_IP_ADDRESS: <management ip> + + 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: false + + 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: <management ip> onenode + + # Network interface to be used, only needed if there are more + # than one available. + # EXTERNAL_INTERFACE: eno1 diff --git a/unmaintained/clusters/openstack-one-node.morph b/unmaintained/clusters/openstack-one-node.morph new file mode 100644 index 00000000..ddecb6fc --- /dev/null +++ b/unmaintained/clusters/openstack-one-node.morph @@ -0,0 +1,104 @@ +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: unmaintained/systems/openstack-system-x86_64.morph + deploy: + release: + type: extensions/rawdisk + location: baserock-openstack-system-x86_64.img + DISK_SIZE: 10G + INSTALL_FILES: install-files/openstack/manifest + + HOSTNAME: onenode + + RABBITMQ_HOST: onenode + RABBITMQ_PORT: 5672 + RABBITMQ_USER: rabbitmq + RABBITMQ_PASSWORD: veryinsecure + + CONTROLLER_HOST_ADDRESS: onenode + MANAGEMENT_INTERFACE_IP_ADDRESS: <management ip> + + 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: false + + 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 + + # Network interface to be used, only needed if there are more + # than one available. + # EXTERNAL_INTERFACE: eno1 diff --git a/unmaintained/clusters/openstack-three-node-installer.morph b/unmaintained/clusters/openstack-three-node-installer.morph new file mode 100644 index 00000000..9274f9bf --- /dev/null +++ b/unmaintained/clusters/openstack-three-node-installer.morph @@ -0,0 +1,238 @@ +name: openstack-three-node-installer +kind: cluster +description: | + This is a cluster morphology for deploying an installer for an x86_64 + OpenStack system spread across three nodes. + + This cluster creates disk images that may be `dd`'d onto install media to + produce an OpenStack cluster when instantiated. + + Alternatively it may be used to install directly onto a physical disk by + running: + + morph deploy clusters/openstack-three-node-installer.morph \ + network-installer network-installer.location=/dev/vdb + + Substituting network-installer for either compute-installer or + controller-installer will produce different configurations, and it is possible + to substitue /dev/vdb for a different path to a disk image to install to a + different disk image. + + Substitute the values of HOSTNAME, NETWORK_CONFIG, EXTERNAL_INTERFACE, + MANAGEMENT_IP_ADDRESS, CONTROLLER_HOST_ADDRESS, RABBITMQ_HOST and HOSTS_* to + match your hardware and networking configuration. + + 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/installer-system-x86_64.morph + deploy: + network-installer: &installer + type: extensions/rawdisk + location: installer-openstack-network-x86_64.img + KERNEL_ARGS: init=/usr/lib/baserock-installer/installer + DISK_SIZE: 6G + HOSTNAME: installer-x86_64 + INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda + INSTALLER_ROOTFS_TO_INSTALL: /rootfs + INSTALLER_POST_INSTALL_COMMAND: sync; poweroff -f + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + network-initramfs: &initramfs + type: extensions/initramfs + location: boot/initramfs.gz + - morph: unmaintained/systems/openstack-system-x86_64.morph + deploy: + network-to-install: &stack-node + type: extensions/sysroot + location: rootfs + INSTALL_FILES: install-files/openstack/manifest + INITRAMFS_PATH: boot/initramfs.gz + + HOSTNAME: threenode-network + + RABBITMQ_HOST: threenode-controller.os-mgmt + RABBITMQ_PORT: 5672 + RABBITMQ_USER: rabbitmq + RABBITMQ_PASSWORD: veryinsecure + + # This token needs to be unique and secret + KEYSTONE_ENABLE_SERVICE: false + KEYSTONE_TEMPORARY_ADMIN_TOKEN: 22f3aa1cf538e3f6d5e8 + KEYSTONE_ADMIN_PASSWORD: veryinsecure + KEYSTONE_DB_USER: keystoneDB + KEYSTONE_DB_PASSWORD: veryinsecure + + GLANCE_ENABLE_SERVICE: false + GLANCE_SERVICE_USER: glance + GLANCE_SERVICE_PASSWORD: veryinsecure + GLANCE_DB_USER: glanceDB + GLANCE_DB_PASSWORD: veryinsecure + + NOVA_ENABLE_CONTROLLER: false + NOVA_ENABLE_COMPUTE: false + NOVA_SERVICE_USER: nova + NOVA_SERVICE_PASSWORD: veryinsecure + NOVA_DB_USER: novaDB + NOVA_DB_PASSWORD: veryinsecure + NOVA_VIRT_TYPE: kvm + NOVA_BAREMETAL_SCHEDULING: false + + CINDER_ENABLE_CONTROLLER: false + CINDER_ENABLE_COMPUTE: false + CINDER_ENABLE_STORAGE: false + 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_ENABLE_AGENT: false + NEUTRON_ENABLE_MANAGER: true + NEUTRON_ENABLE_CONTROLLER: false + NEUTRON_SERVICE_USER: neutron + NEUTRON_SERVICE_PASSWORD: veryinsecure + NEUTRON_DB_USER: neutronDB + NEUTRON_DB_PASSWORD: veryinsecure + METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret + + IRONIC_ENABLE_SERVICE: false + 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 + CEILOMETER_ENABLE_CONTROLLER: false + CEILOMETER_ENABLE_COMPUTE: false + METERING_SECRET: insecureceilometersecret + + CONTROLLER_HOST_ADDRESS: threenode-controller.os-mgmt + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.1 + + HOSTS_NETWORK: 10.0.0.1 threenode-network.os-mgmt + HOSTS_CONTROL: 10.0.0.2 threenode-controller.os-mgmt + HOSTS_COMPUTE: 10.0.0.3 threenode-compute.os-mgmt + + EXTERNAL_INTERFACE: enp3s0 + NETWORK_CONFIG: enp3s0:dhcp;enp2s0:static,address=10.0.0.1,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: true + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + network-to-install-initramfs: *initramfs +- morph: systems/installer-system-x86_64.morph + deploy: + controller-installer: + <<: *installer + location: installer-openstack-controller-x86_64.img + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + controller-initramfs: *initramfs + - morph: unmaintained/systems/openstack-system-x86_64.morph + deploy: + controller-to-install: + <<: *stack-node + HOSTNAME: threenode-controller + + KEYSTONE_ENABLE_SERVICE: true + + GLANCE_ENABLE_SERVICE: true + + NOVA_ENABLE_CONTROLLER: true + + CINDER_ENABLE_CONTROLLER: true + CINDER_ENABLE_COMPUTE: false + CINDER_ENABLE_STORAGE: false + + NEUTRON_ENABLE_AGENT: false + NEUTRON_ENABLE_MANAGER: false + NEUTRON_ENABLE_CONTROLLER: true + METADATA_PROXY_SHARED_SECRET: novaneutronmetasecret + + IRONIC_ENABLE_SERVICE: true + + CEILOMETER_ENABLE_CONTROLLER: true + CEILOMETER_ENABLE_COMPUTE: false + + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.2 + EXTERNAL_INTERFACE: enp2s0 + NETWORK_CONFIG: enp2s0:dhcp;enp0s26u1u2:static,address=10.0.0.2,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: false + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + controller-to-install-initramfs: *initramfs +- morph: systems/installer-system-x86_64.morph + deploy: + compute-installer: + <<: *installer + location: installer-openstack-compute-x86_64.img + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + compute-initramfs: *initramfs + - morph: unmaintained/systems/openstack-system-x86_64.morph + deploy: + compute-to-install: + <<: *stack-node + HOSTNAME: threenode-compute + + NOVA_ENABLE_COMPUTE: true + + CINDER_ENABLE_CONTROLLER: false + CINDER_ENABLE_COMPUTE: true + CINDER_ENABLE_STORAGE: true + + NEUTRON_ENABLE_AGENT: true + NEUTRON_ENABLE_MANAGER: false + NEUTRON_ENABLE_CONTROLLER: false + + CEILOMETER_ENABLE_CONTROLLER: false + CEILOMETER_ENABLE_COMPUTE: true + + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3 + EXTERNAL_INTERFACE: eno1 + NETWORK_CONFIG: eno1:dhcp;enp0s29u1u3:static,address=10.0.0.3,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: true + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + compute-to-install-initramfs: *initramfs diff --git a/unmaintained/clusters/openstack-two-node-installer.morph b/unmaintained/clusters/openstack-two-node-installer.morph new file mode 100644 index 00000000..e75b5a5e --- /dev/null +++ b/unmaintained/clusters/openstack-two-node-installer.morph @@ -0,0 +1,199 @@ +name: openstack-two-node-installer +kind: cluster +description: | + This is a cluster morphology for deploying an installer for an x86_64 + OpenStack system spread across three nodes. + + This cluster creates disk images that may be `dd`'d onto install media to + produce an OpenStack cluster when instantiated. + + Alternatively it may be used to install directly onto a physical disk by + running: + + morph deploy clusters/openstack-two-node-installer.morph \ + controller-installer controller-installer.location=/dev/vdb + + Substituting contrller-installer for compute-installer will produce + different configurations, and it is possible to substitue /dev/vdb for a + different path to a disk image to install to a different disk image. + + Substitute the values of HOSTNAME, NETWORK_CONFIG, EXTERNAL_INTERFACE, + MANAGEMENT_IP_ADDRESS, CONTROLLER_HOST_ADDRESS, RABBITMQ_HOST and HOSTS_* to + match your hardware and networking configuration. + + 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 a YAML truth value will configure + Nova to schedule baremetal machines through the Ironic driver, instead of + sheduling virtual machines. + +systems: +- morph: systems/installer-system-x86_64.morph + deploy: + controller-installer: &installer + type: extensions/rawdisk + location: installer-openstack-controller-x86_64.img + KERNEL_ARGS: init=/usr/lib/baserock-installer/installer + DISK_SIZE: 6G + HOSTNAME: installer-x86_64 + INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda + INSTALLER_ROOTFS_TO_INSTALL: /rootfs + INSTALLER_POST_INSTALL_COMMAND: sync; poweroff -f + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + controller-initramfs: &initramfs + type: extensions/initramfs + location: boot/initramfs.gz + - morph: unmaintained/systems/openstack-system-x86_64.morph + deploy: + controller-to-install: &stack-node + type: extensions/sysroot + location: rootfs + INSTALL_FILES: install-files/openstack/manifest + INITRAMFS_PATH: boot/initramfs.gz + + HOSTNAME: twonode-controller + + RABBITMQ_HOST: twonode-controller.os-mgmt + RABBITMQ_PORT: 5672 + RABBITMQ_USER: rabbitmq + RABBITMQ_PASSWORD: veryinsecure + + # This token needs to be unique and secret + 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_ENABLE_CONTROLLER: true + NOVA_ENABLE_COMPUTE: false + NOVA_SERVICE_USER: nova + NOVA_SERVICE_PASSWORD: veryinsecure + NOVA_DB_USER: novaDB + NOVA_DB_PASSWORD: veryinsecure + NOVA_VIRT_TYPE: kvm + NOVA_BAREMETAL_SCHEDULING: false + + CINDER_ENABLE_CONTROLLER: true + CINDER_ENABLE_COMPUTE: false + CINDER_ENABLE_STORAGE: false + 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_ENABLE_AGENT: false + NEUTRON_ENABLE_MANAGER: true + NEUTRON_ENABLE_CONTROLLER: true + 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 + CEILOMETER_ENABLE_CONTROLLER: true + CEILOMETER_ENABLE_COMPUTE: false + METERING_SECRET: insecureceilometersecret + + CONTROLLER_HOST_ADDRESS: twonode-controller.os-mgmt + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.1 + + HOSTS_CONTROL: 10.0.0.1 twonode-controller.os-mgmt + HOSTS_COMPUTE: 10.0.0.3 twonode-compute.os-mgmt + EXTERNAL_INTERFACE: enp3s0 + NETWORK_CONFIG: enp3s0:dhcp;enp2s0:static,address=10.0.0.1,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: false + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + controller-to-install-initramfs: *initramfs +- morph: systems/installer-system-x86_64.morph + deploy: + compute-installer: + <<: *installer + location: installer-openstack-compute-x86_64.img + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + compute-initramfs: *initramfs + - morph: unmaintained/systems/openstack-system-x86_64.morph + deploy: + compute-to-install: + <<: *stack-node + HOSTNAME: twonode-compute + + KEYSTONE_ENABLE_SERVICE: false + + GLANCE_ENABLE_SERVICE: false + + NOVA_ENABLE_COMPUTE: true + NOVA_ENABLE_CONTROLLER: false + + CINDER_ENABLE_CONTROLLER: false + CINDER_ENABLE_COMPUTE: true + CINDER_ENABLE_STORAGE: true + + NEUTRON_ENABLE_AGENT: true + NEUTRON_ENABLE_MANAGER: false + NEUTRON_ENABLE_CONTROLLER: false + + IRONIC_ENABLE_SERVICE: false + + CEILOMETER_ENABLE_CONTROLLER: false + CEILOMETER_ENABLE_COMPUTE: true + + MANAGEMENT_INTERFACE_IP_ADDRESS: 10.0.0.3 + EXTERNAL_INTERFACE: eno1 + NETWORK_CONFIG: eno1:dhcp;enp0s29u1u3:static,address=10.0.0.3,netmask=255.255.255.0 + SYNC_TIME_WITH_CONTROLLER: true + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + compute-to-install-initramfs: *initramfs diff --git a/unmaintained/clusters/xfce-system-x86_64-deploy.morph b/unmaintained/clusters/xfce-system-x86_64-deploy.morph new file mode 100644 index 00000000..465ba1d0 --- /dev/null +++ b/unmaintained/clusters/xfce-system-x86_64-deploy.morph @@ -0,0 +1,23 @@ +name: xfce-system-x86_64-deploy +kind: cluster +description: | + Deploy a stock XFCE system. + + The resulting image can be copied to a USB and booted from there, + as well as in a virtual machine. + +systems: +- morph: unmaintained/systems/xfce-system-x86_64.morph + deploy: + xfce-system-x86_64: + type: extensions/rawdisk + location: /xfce-system-x86_64.img + DISK_SIZE: 6G + KERNEL_ARGS: vga=788 + INITRAMFS_PATH: boot/initramfs.gz + subsystems: + - morph: systems/initramfs-x86_64.morph + deploy: + initramfs: + type: extensions/initramfs + location: boot/initramfs.gz diff --git a/unmaintained/clusters/zookeeper.morph b/unmaintained/clusters/zookeeper.morph new file mode 100644 index 00000000..ba859bc1 --- /dev/null +++ b/unmaintained/clusters/zookeeper.morph @@ -0,0 +1,21 @@ +name: zookeeper +kind: cluster +systems: +- morph: unmaintained/systems/zookeeper-client-x86_64.morph + deploy: + my-client-system: + type: extensions/kvm + location: kvm+ssh://username@HOSTNAME/machinename/path/to/zookeeper-client.img + DISK_SIZE: 4G + RAM_SIZE: 1G + VCPUS: 1 + HOSTNAME: zkclient +- morph: unmaintained/systems/zookeeper-server-x86_64.morph + deploy: + my-server-system: + type: extensions/kvm + location: kvm+ssh://username@HOSTNAME/machinename/path/to/zookeeper-server.img + DISK_SIZE: 4G + RAM_SIZE: 1G + VCPUS: 1 + HOSTNAME: zkserver |