diff --git a/multi-node-aio/README.rst b/multi-node-aio/README.rst index be90edae..175eed1c 100644 --- a/multi-node-aio/README.rst +++ b/multi-node-aio/README.rst @@ -148,8 +148,8 @@ To rekick all VMs, the following command can be used on the host machine to cycl for VM_NAME in $(virsh list --all | awk '/running/ || /shut/ {print $2}'); do virsh destroy "${VM_NAME}" - lvremove "/dev/mapper/vg01--${VM_NAME}" - lvcreate -L 60G vg01 -n "${VM_NAME}" + echo y | lvremove "/dev/mapper/vg01-${VM_NAME}" + lvcreate -L 92160M vg01 -n "${VM_NAME}" virsh start "${VM_NAME}" done diff --git a/multi-node-aio/playbooks/deploy-dhcp.yml b/multi-node-aio/playbooks/deploy-dhcp.yml index ac3c9bbd..a3dea2a8 100644 --- a/multi-node-aio/playbooks/deploy-dhcp.yml +++ b/multi-node-aio/playbooks/deploy-dhcp.yml @@ -66,7 +66,5 @@ state: restarted with_items: "{{ mnaio_dhcp_distro_packages }}" - vars_files: - - vars/main.yml tags: - deploy-dhcpd diff --git a/multi-node-aio/playbooks/deploy-osa.yml b/multi-node-aio/playbooks/deploy-osa.yml index 58915e79..1f40ae6e 100644 --- a/multi-node-aio/playbooks/deploy-osa.yml +++ b/multi-node-aio/playbooks/deploy-osa.yml @@ -13,102 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. - -- name: Setup cinder host volume - hosts: cinder_hosts:swift_hosts - gather_facts: false - tasks: - - name: un-mount deleteme mount - mount: - name: "/var/lib/lxc" - state: unmounted - - - name: remote deleteme mount - mount: - name: "/var/lib/lxc" - state: absent - - - name: Remove deleteme lv - lvol: - vg: vg00 - lv: lxc00 - force: true - state: absent - -- name: Setup cinder host volume - hosts: cinder_hosts - gather_facts: false - tasks: - - name: Create cinder-volumes lv - lvol: - vg: vg00 - lv: cinder-volumes00 - size: 100%FREE - shrink: false - - - name: Create data cinder-volumes group - lvg: - vg: cinder-volumes - pvs: "/dev/vg00/cinder-volumes00" - - vars_files: - - vars/main.yml - tags: - - deploy-osa - - -- name: Setup swift host volume - hosts: swift_hosts - gather_facts: false - tasks: - - name: Remove deleteme lv - lvol: - vg: vg00 - lv: "{{ item }}" - size: 4G - with_items: - - disk1 - - disk2 - - disk3 - - - name: Format swift drives - filesystem: - fstype: xfs - dev: "/dev/vg00/{{ item }}" - with_items: - - disk1 - - disk2 - - disk3 - - - name: Create drive directories - file: - path: "/srv/{{ item }}" - state: directory - owner: "root" - group: "root" - mode: "0755" - with_items: - - disk1 - - disk2 - - disk3 - - - name: Mount swift drives - mount: - name: "/srv/{{ item }}" - src: "/dev/mapper/vg00-{{ item }}" - fstype: xfs - state: mounted - with_items: - - disk1 - - disk2 - - disk3 - - vars_files: - - vars/main.yml - tags: - - deploy-osa - - - name: Setup deploy host hosts: deploy_hosts gather_facts: "{{ gather_facts | default(true) }}" @@ -226,7 +130,5 @@ when: - run_osa | default(true) | bool - vars_files: - - vars/main.yml tags: - deploy-osa diff --git a/multi-node-aio/playbooks/deploy-pxe.yml b/multi-node-aio/playbooks/deploy-pxe.yml index 9220b9e9..06a95ec3 100644 --- a/multi-node-aio/playbooks/deploy-pxe.yml +++ b/multi-node-aio/playbooks/deploy-pxe.yml @@ -187,35 +187,46 @@ group: root with_items: - src: basic-interface.cfg - dest: basic-interface.cfg + dest: "basic-{{ ansible_os_family | lower }}-interface.cfg" dir: networking + - src: vm-post-install-script.sh.j2 + dest: "vm-post-install-{{ ansible_os_family | lower }}-script.sh" + dir: scripts + + - name: network scripts for an MNAIO + template: + src: "mnaio/{{ ansible_os_family | lower }}/{{ item.src }}" + dest: /var/www/pxe/{{ item.dir }}/{{ item.dest }} + mode: "0644" + owner: root + group: root + when: + - groups['mnaio_hosts'] | default([]) | length > 0 + with_items: - src: mnaio-bridges.cfg.j2 dest: mnaio-bridges.cfg dir: networking - src: mnaio-post-install-script.sh.j2 dest: mnaio-post-install-script.sh dir: scripts - - src: vm-post-install-script.sh.j2 - dest: vm-post-install-script.sh - dir: scripts - name: network scripts for servers template: src: "pxe/{{ ansible_os_family | lower }}/vm-bridges.cfg.j2" - dest: /var/www/pxe/networking/{{ item.server_hostname }}-bridges.cfg + dest: /var/www/pxe/networking/{{ hostvars[item]['server_hostname'] }}-bridges.cfg mode: "0644" owner: root group: root - with_items: "{{ servers }}" + with_items: "{{ groups['pxe_servers'] }}" - name: tftp configs for servers template: src: "pxe/tftp/pxelinux.cfg.macaddr.j2" - dest: "/var/lib/tftpboot/pxelinux.cfg/01-{{ item.server_mac_address | replace(':', '-') }}" + dest: "/var/lib/tftpboot/pxelinux.cfg/01-{{ hostvars[item]['server_mac_address'] | replace(':', '-') }}" mode: "0644" owner: root group: root - with_items: "{{ servers }}" + with_items: "{{ groups['pxe_servers'] }}" - name: Preseeds for pxe mnaio template: @@ -290,7 +301,5 @@ state: restarted enabled: yes - vars_files: - - vars/main.yml tags: - deploy-pxe diff --git a/multi-node-aio/playbooks/deploy-vms.yml b/multi-node-aio/playbooks/deploy-vms.yml index 24f88e04..8c3c1c52 100644 --- a/multi-node-aio/playbooks/deploy-vms.yml +++ b/multi-node-aio/playbooks/deploy-vms.yml @@ -32,36 +32,44 @@ - name: Create VM LV lvol: vg: vg01 - lv: "{{ item.server_hostname }}" + lv: "{{ hostvars[item]['server_hostname'] }}" size: "{{ default_vm_storage }}" - with_items: "{{ servers }}" + when: + - hostvars[item]['server_vm'] | default(false) | bool + with_items: "{{ groups['pxe_servers'] }}" - name: Create the VM template template: src: kvm/kvm-vm.xml - dest: "/etc/libvirt/qemu/{{ item.server_hostname }}.xml" + dest: "/etc/libvirt/qemu/{{ hostvars[item]['server_hostname'] }}.xml" mode: 0644 owner: root group: root - with_items: "{{ servers }}" + when: + - hostvars[item]['server_vm'] | default(false) | bool + with_items: "{{ groups['pxe_servers'] }}" - name: Define the VM - command: "virsh define /etc/libvirt/qemu/{{ item.server_hostname }}.xml" + command: "virsh define /etc/libvirt/qemu/{{ hostvars[item]['server_hostname'] }}.xml" failed_when: false - with_items: "{{ servers }}" + when: + - hostvars[item]['server_vm'] | default(false) | bool + with_items: "{{ groups['pxe_servers'] }}" - name: Create the VM - command: "virsh create /etc/libvirt/qemu/{{ item.server_hostname }}.xml" + command: "virsh create /etc/libvirt/qemu/{{ hostvars[item]['server_hostname'] }}.xml" failed_when: false - with_items: "{{ servers }}" + when: + - hostvars[item]['server_vm'] | default(false) | bool + with_items: "{{ groups['pxe_servers'] }}" - name: Start the VM - command: "virsh start {{ item.server_hostname }}" + command: "virsh start {{ hostvars[item]['server_hostname'] }}" failed_when: false - with_items: "{{ servers }}" + when: + - hostvars[item]['server_vm'] | default(false) | bool + with_items: "{{ groups['pxe_servers'] }}" - vars_files: - - vars/main.yml tags: - deploy-vms @@ -70,14 +78,14 @@ hosts: localhost gather_facts: false tasks: - - name: Servers group + - name: VM Servers group add_host: - name: "{{ item.server_vm_fixed_addr }}" + name: "{{ hostvars[item]['server_vm_fixed_addr'] }}" groups: vm_servers - with_items: "{{ servers }}" + when: + - hostvars[item]['server_vm'] | default(false) | bool + with_items: "{{ groups['pxe_servers'] }}" - vars_files: - - vars/main.yml tags: - deploy-vms @@ -86,11 +94,16 @@ hosts: vm_servers gather_facts: false pre_tasks: - - name: Wait for container connectivity - wait_for_connection: + - name: Wait for connectivity 1 + local_action: + module: wait_for + host: "{{ ansible_host }}" connect_timeout: 5 + port: 22 sleep: 10 timeout: 1200 + state: started + search_regex: OpenSSH tasks: - name: copy host keys copy: @@ -103,7 +116,100 @@ - src: /root/.ssh/id_rsa.pub dest: /root/.ssh/id_rsa.pub - vars_files: - - vars/main.yml tags: - - deploy-vms \ No newline at end of file + - deploy-vms + + +- name: Setup cinder host volume + hosts: cinder_hosts:swift_hosts + gather_facts: false + tasks: + - name: un-mount deleteme mount + mount: + name: "/var/lib/lxc" + state: unmounted + + - name: remote deleteme mount + mount: + name: "/var/lib/lxc" + state: absent + + - name: Remove deleteme lv + lvol: + vg: vg00 + lv: lxc00 + force: true + state: absent + + tags: + - deploy-vms + + +- name: Setup cinder host volume + hosts: cinder_hosts + gather_facts: false + tasks: + - name: Create cinder-volumes lv + lvol: + vg: vg00 + lv: cinder-volumes00 + size: "100%FREE" + shrink: false + + - name: Create data cinder-volumes group + lvg: + vg: cinder-volumes + pvs: "/dev/vg00/cinder-volumes00" + + tags: + - deploy-vms + + +- name: Setup swift host volume + hosts: swift_hosts + gather_facts: false + tasks: + - name: Remove deleteme lv + lvol: + vg: vg00 + lv: "{{ item }}" + size: 4G + with_items: + - disk1 + - disk2 + - disk3 + + - name: Format swift drives + filesystem: + fstype: xfs + dev: "/dev/vg00/{{ item }}" + with_items: + - disk1 + - disk2 + - disk3 + + - name: Create drive directories + file: + path: "/srv/{{ item }}" + state: directory + owner: "root" + group: "root" + mode: "0755" + with_items: + - disk1 + - disk2 + - disk3 + + - name: Mount swift drives + mount: + name: "/srv/{{ item }}" + src: "/dev/mapper/vg00-{{ item }}" + fstype: xfs + state: mounted + with_items: + - disk1 + - disk2 + - disk3 + + tags: + - deploy-vms diff --git a/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 b/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 index 970a1332..24ac5738 100644 --- a/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 +++ b/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 @@ -37,11 +37,11 @@ shared-network all-networks { {% endfor %} group { - {% for item in servers %} - host {{ item.server_hostname }} { - hardware ethernet {{ item.server_mac_address }}; - fixed-address {{ item.server_vm_fixed_addr }}; - option host-name "{{ item.server_hostname }}"; + {% for item in groups['pxe_servers'] %} + host {{ hostvars[item]['server_hostname'] }} { + hardware ethernet {{ hostvars[item]['server_mac_address'] }}; + fixed-address {{ hostvars[item]['server_vm_fixed_addr'] }}; + option host-name "{{ hostvars[item]['server_hostname'] }}"; } {% endfor %} diff --git a/multi-node-aio/playbooks/group_vars/all.yml b/multi-node-aio/playbooks/group_vars/all.yml new file mode 100644 index 00000000..a947a4ef --- /dev/null +++ b/multi-node-aio/playbooks/group_vars/all.yml @@ -0,0 +1,66 @@ +--- +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +default_interface: "{{ default_network | default('eth0') }}" +default_vm_image: "{{ default_image | default('ubuntu-16.04-amd64') }}" +default_vm_storage: "{{ vm_disk_size | default(92160) }}" + +default_os_families: + ubuntu-16.04-amd64: debian + ubuntu-14.04-amd64: debian + +default_ubuntu_mirror_proxy: 'http://10.0.2.1:3142/' +default_ubuntu_mirror_hostname: archive.ubuntu.com +default_ubuntu_mirror_directory: /ubuntu + + # IP address, or domain name of the TFTP server +tftp_server: "{{ ansible_host }}" +# tftp_ssh_key: '' # user defined ssh key, used to access the host +tftp_port: 69 + +# Default ISO images +images: + ubuntu-16.04-amd64: + image_type: debian + image_iso_url: "http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-server-amd64.iso" + image_name: "ubuntu-16.04.2-server-amd64.iso" + image_short_name: "ubuntu-16.04.2-server-amd64" + image_default_boot: "ubuntu-16.04.2-server-amd64/amd64/boot-screens/menu.cfg" + image_kernel_options: "biosdevname=0 net.ifnames=0 auto=true priority=critical vga=789" + image_kernel: "ubuntu-16.04.2-server-amd64/amd64/linux" + image_initrd: "ubuntu-16.04.2-server-amd64/amd64/initrd.gz" + image_netboot: "ubuntu-16.04.2-server-amd64/install/netboot/ubuntu-installer" + image_preseeds: + mnaio: + url: "tftp://{{ tftp_server }}/preseed/mnaio.preseed" + template_name: "mnaio.preseed" + vm: + url: "tftp://{{ tftp_server }}/preseed/vm.preseed" + template_name: "vm.preseed" + ubuntu-14.04-amd64: + image_type: debian + image_iso_url: "http://releases.ubuntu.com/14.04.5/ubuntu-14.04.5-server-amd64.iso" + image_name: "ubuntu-14.04.5-server-amd64.iso" + image_short_name: "ubuntu-14.04.5-server-amd64" + image_default_boot: "ubuntu-14.04.5-server-amd64/amd64/boot-screens/menu.cfg" + image_kernel_options: "biosdevname=0 net.ifnames=0 auto=true priority=critical vga=789" + image_kernel: "ubuntu-14.04.5-server-amd64/amd64/linux" + image_initrd: "ubuntu-14.04.5-server-amd64/amd64/initrd.gz" + image_netboot: "ubuntu-14.04.5-server-amd64/install/netboot/ubuntu-installer" + image_preseeds: + mnaio: + url: "tftp://{{ tftp_server }}/preseed/mnaio.preseed" + template_name: "mnaio.preseed" + vm: + url: "tftp://{{ tftp_server }}/preseed/vm.preseed" + template_name: "vm.preseed" diff --git a/multi-node-aio/playbooks/group_vars/dhcp_hosts.yml b/multi-node-aio/playbooks/group_vars/dhcp_hosts.yml new file mode 100644 index 00000000..2fcea994 --- /dev/null +++ b/multi-node-aio/playbooks/group_vars/dhcp_hosts.yml @@ -0,0 +1,28 @@ +--- +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +dhcp_default_lease_time: 21600 # Default lease time +dhcp_max_lease_time: 43200 # Max lease time +tftp_boot_path: /pxelinux.0 # Path of where to boot from first + +# - List of DHCP Subnets - These are iterated though and each will be created +dhcp_list: + - netmask: 255.255.255.0 # Netmask + gateway: 10.0.2.1 # Gateway + dns: 8.8.8.8 # DNS + subnet: 10.0.2.0 # Subnet mask + default_lease_time: 21600 # Subnet Default lease time - The default is used if this is not defined + max_lease_time: 43200 # Subnet Max lease time - The default is used if this is not defined + tftp_boot_path: /pxelinux.0 # Path for tftp of where to boot from first - The default is used if this is not defined + tftp_server: "{{ tftp_server }}" # The server hosting the TFTP server - The default is used if this is not defined + dhcp_default_domain_name: openstackci.local diff --git a/multi-node-aio/playbooks/group_vars/mnaio_hosts.yml b/multi-node-aio/playbooks/group_vars/mnaio_hosts.yml new file mode 100644 index 00000000..2f1bf580 --- /dev/null +++ b/multi-node-aio/playbooks/group_vars/mnaio_hosts.yml @@ -0,0 +1,83 @@ +--- +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# mnaio_data_disk: 'sdc' # str - not required, set this to define a given data disk if no data disk +# is defined the largest unpartitioned disk will be used. +mnaio_host_networks: + dhcp: + iface: 'vm-br-dhcp' # str - required, interface name + inet_type: 'static' # str - required, iface type [static, dhcp, manual] + address: '10.0.2.1/22' # str - not required, must be in CIDR format + iface_port: none # str - required, physical port used within a host bridge + mgmt: + iface: 'vm-br-eth1' + inet_type: 'static' + address: '10.0.236.1/22' + iface_port: none + flat: + iface: 'vm-br-eth2' + inet_type: 'static' + address: '10.0.248.1/22' + iface_port: none + vlan: + iface: 'vm-br-eth3' + inet_type: 'manual' + iface_port: none + vxlan: + iface: 'vm-br-eth4' + inet_type: 'manual' + address: '10.0.240.1/22' + iface_port: none + storage: + iface: 'vm-br-eth5' + inet_type: 'manual' + address: '10.0.244.1/22' + iface_port: none + +mnaio_host_iptables_rules: + - table: filter + chain: INPUT + protocol: tcp + match: tcp + destination_port: 67 + jump: ACCEPT + - table: filter + chain: INPUT + protocol: udp + match: udp + destination_port: 67 + jump: ACCEPT + - table: filter + chain: INPUT + protocol: udp + match: udp + destination_port: 53 + jump: ACCEPT + - table: filter + chain: INPUT + protocol: udp + match: udp + destination_port: 53 + jump: ACCEPT + - table: filter + chain: FORWARD + in_interface: vm-br-dhcp + jump: ACCEPT + - table: filter + chain: FORWARD + out_interface: vm-br-dhcp + jump: ACCEPT + - table: nat + chain: POSTROUTING + out_interface: "{{ masquerade_interface | default(default_interface) }}" + jump: MASQUERADE diff --git a/multi-node-aio/playbooks/group_vars/pxe_hosts.yml b/multi-node-aio/playbooks/group_vars/pxe_hosts.yml new file mode 100644 index 00000000..1c6f98f8 --- /dev/null +++ b/multi-node-aio/playbooks/group_vars/pxe_hosts.yml @@ -0,0 +1,16 @@ +--- +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +pxelinux_url: "https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz" +pxelinux_name: "syslinux-6.03.tar.gz" +pxelinux_short_name: "syslinux-6.03" diff --git a/multi-node-aio/playbooks/host_vars/cinder1.yml b/multi-node-aio/playbooks/host_vars/cinder1.yml new file mode 100644 index 00000000..05044211 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/cinder1.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'cinder1' +server_vm: true +server_vm_ram: 2048 +server_vm_vcpus: 2 +server_vm_fixed_addr: '10.0.2.130' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:07' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.107/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.107/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.107/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.107/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/cinder2.yml b/multi-node-aio/playbooks/host_vars/cinder2.yml new file mode 100644 index 00000000..c39db66f --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/cinder2.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'cinder2' +server_vm: true +server_vm_ram: 2048 +server_vm_vcpus: 2 +server_vm_fixed_addr: '10.0.2.131' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:08' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.108/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.108/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.108/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.108/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/compute1.yml b/multi-node-aio/playbooks/host_vars/compute1.yml new file mode 100644 index 00000000..20522e8e --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/compute1.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'compute1' +server_vm: true +server_vm_ram: 2048 +server_vm_vcpus: 4 +server_vm_fixed_addr: '10.0.2.120' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:05' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.105/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.105/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.105/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.105/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/compute2.yml b/multi-node-aio/playbooks/host_vars/compute2.yml new file mode 100644 index 00000000..fde20a25 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/compute2.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'compute2' +server_vm: true +server_vm_ram: 2048 +server_vm_vcpus: 4 +server_vm_fixed_addr: '10.0.2.121' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:06' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.106/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.106/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.106/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.106/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/example-host1.yml.example b/multi-node-aio/playbooks/host_vars/example-host1.yml.example new file mode 100644 index 00000000..370747a0 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/example-host1.yml.example @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" # str - Set the ansible os family + +server_hostname: 'example-host1' # str - required, hostname of server +server_vm: true # bool - not required, used to specify a host is to become a VM +server_vm_ram: 8192 # int - not required, used to specify ram when provisioning a VM +server_vm_vcpus: 4 # int - not required, used to specify vcpus when provisioning a VM +server_vm_fixed_addr: '10.0.2.200' # str - not required, used to specify fixed address when using internal DHCPD +server_vm_primary_network: 'dhcp' # str - not required, primary network used to kick the VM +server_image: "{{ default_vm_image }}" # str - required, image name +server_default_interface: 'eth0' # str - required, default interface +server_mac_address: '52:54:00:bd:80:20' # str - required, mac address of default interface +server_preseed_ks: 'vm' # str - required, name of preseed/kickstart file +server_extra_options: '' # str - not required, added kernel options + +server_networks: # dict - required, hash of networks, can be empty, key is used to name the networks. + dhcp: + iface: 'eth0' # str - required, interface name + inet_type: 'dhcp' # str - required, iface type [static, dhcp, manual] + vm_int_iface: vm-br-dhcp # str - not Required, used to specify an integration networks interface when provisioning a VM + mgmt: + iface: 'eth1' # str - required, interface name + inet_type: 'static' # str - required, iface type [static, dhcp, manual] + address: '10.0.236.200/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth1 # str - not Required, used to specify an integration networks interface when provisioning a VM + flat: + iface: 'eth2' # str - required, interface name + inet_type: 'static' # str - required, iface type [static, dhcp, manual] + address: '10.0.248.200/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth2 # str - not Required, used to specify an integration networks interface when provisioning a VM + vlan: + iface: 'eth3' # str - required, interface name + inet_type: 'manual' # str - required, iface type [static, dhcp, manual] + vm_int_iface: vm-br-eth3 # str - not Required, used to specify an integration networks interface when provisioning a VM + vxlan: + iface: 'eth4' # str - required, interface name + inet_type: 'manual' # str - required, iface type [static, dhcp, manual] + address: '10.0.240.200/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth4 # str - not Required, used to specify an integration networks interface when provisioning a VM + storage: + iface: 'eth5' # str - required, interface name + inet_type: 'manual' # str - required, iface type [static, dhcp, manual] + address: '10.0.244.200/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth5 # str - not Required, used to specify an integration networks interface when provisioning a VM diff --git a/multi-node-aio/playbooks/host_vars/infra1.yml b/multi-node-aio/playbooks/host_vars/infra1.yml new file mode 100644 index 00000000..17086f80 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/infra1.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'infra1' # str - required, hostname of server +server_vm: true # bool - not required, used to specify a host is to become a VM +server_vm_ram: 8192 # int - not required, used to specify ram when provisioning a VM +server_vm_vcpus: 4 # int - not required, used to specify vcpus when provisioning a VM +server_vm_fixed_addr: '10.0.2.100' # str - not required, used to specify fixed address when using internal DHCPD +server_vm_primary_network: 'dhcp' # str - not required, primary network used to kick the VM +server_image: "{{ default_vm_image }}" # str - required, image name +server_default_interface: 'eth0' # str - required, default interface +server_mac_address: '52:54:00:bd:80:00' # str - required, mac address of default interface +server_preseed_ks: 'vm' # str - required, name of preseed/kickstart file +server_extra_options: '' # str - not required, added kernel options + +server_networks: # dict - required, hash of networks, can be empty, key is used to name the networks. + dhcp: + iface: 'eth0' # str - required, interface name + inet_type: 'dhcp' # str - required, iface type [static, dhcp, manual] + vm_int_iface: vm-br-dhcp # str - not Required, used to specify an integration networks interface when provisioning a VM + mgmt: + iface: 'eth1' # str - required, interface name + inet_type: 'static' # str - required, iface type [static, dhcp, manual] + address: '10.0.236.100/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth1 # str - not Required, used to specify an integration networks interface when provisioning a VM + flat: + iface: 'eth2' # str - required, interface name + inet_type: 'static' # str - required, iface type [static, dhcp, manual] + address: '10.0.248.100/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth2 # str - not Required, used to specify an integration networks interface when provisioning a VM + vlan: + iface: 'eth3' # str - required, interface name + inet_type: 'manual' # str - required, iface type [static, dhcp, manual] + vm_int_iface: vm-br-eth3 # str - not Required, used to specify an integration networks interface when provisioning a VM + vxlan: + iface: 'eth4' # str - required, interface name + inet_type: 'manual' # str - required, iface type [static, dhcp, manual] + address: '10.0.240.100/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth4 # str - not Required, used to specify an integration networks interface when provisioning a VM + storage: + iface: 'eth5' # str - required, interface name + inet_type: 'manual' # str - required, iface type [static, dhcp, manual] + address: '10.0.244.100/22' # str - not required, must be in CIDR format + vm_int_iface: vm-br-eth5 # str - not Required, used to specify an integration networks interface when provisioning a VM diff --git a/multi-node-aio/playbooks/host_vars/infra2.yml b/multi-node-aio/playbooks/host_vars/infra2.yml new file mode 100644 index 00000000..a1646646 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/infra2.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'infra2' +server_vm: true +server_vm_ram: 8192 +server_vm_vcpus: 4 +server_vm_fixed_addr: '10.0.2.101' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:01' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.101/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.101/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.101/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.101/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/infra3.yml b/multi-node-aio/playbooks/host_vars/infra3.yml new file mode 100644 index 00000000..db7855e8 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/infra3.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'infra3' +server_vm: true +server_vm_ram: 8192 +server_vm_vcpus: 4 +server_vm_fixed_addr: '10.0.2.102' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:02' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.102/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.102/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.102/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.102/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/loadbalancer1.yml b/multi-node-aio/playbooks/host_vars/loadbalancer1.yml new file mode 100644 index 00000000..f179ac4b --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/loadbalancer1.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'loadbalancer1' +server_vm: true +server_vm_ram: 1024 +server_vm_vcpus: 1 +server_vm_fixed_addr: '10.0.2.142' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:12' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.112/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.112/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.112/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.112/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/logging1.yml b/multi-node-aio/playbooks/host_vars/logging1.yml new file mode 100644 index 00000000..793dc928 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/logging1.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'logging1' +server_vm: true +server_vm_ram: 1024 +server_vm_vcpus: 2 +server_vm_fixed_addr: '10.0.2.110' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:03' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.103/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.103/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.103/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.103/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/swift1.yml b/multi-node-aio/playbooks/host_vars/swift1.yml new file mode 100644 index 00000000..d91b6b0d --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/swift1.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'swift1' +server_vm: true +server_vm_ram: 2048 +server_vm_vcpus: 2 +server_vm_fixed_addr: '10.0.2.140' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:09' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.109/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.109/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.109/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.109/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/swift2.yml b/multi-node-aio/playbooks/host_vars/swift2.yml new file mode 100644 index 00000000..b17ff505 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/swift2.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'swift2' +server_vm: true +server_vm_ram: 2048 +server_vm_vcpus: 2 +server_vm_fixed_addr: '10.0.2.140' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:10' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.110/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.110/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.110/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.110/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/host_vars/swift3.yml b/multi-node-aio/playbooks/host_vars/swift3.yml new file mode 100644 index 00000000..fab846d2 --- /dev/null +++ b/multi-node-aio/playbooks/host_vars/swift3.yml @@ -0,0 +1,58 @@ +--- +# Copyright 2017, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in witing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ansible_os_family: "{{ images[default_vm_image]['image_type'] }}" + +server_hostname: 'swift3' +server_vm: true +server_vm_ram: 2048 +server_vm_vcpus: 2 +server_vm_fixed_addr: '10.0.2.141' +server_vm_primary_network: 'dhcp' +server_image: "{{ default_vm_image }}" +server_default_interface: 'eth0' +server_mac_address: '52:54:00:bd:80:11' +server_preseed_ks: 'vm' +server_extra_options: '' + +server_networks: + dhcp: + iface: 'eth0' + inet_type: 'dhcp' + vm_int_iface: vm-br-dhcp + mgmt: + iface: 'eth1' + inet_type: 'static' + address: '10.0.236.111/22' + vm_int_iface: vm-br-eth1 + flat: + iface: 'eth2' + inet_type: 'static' + address: '10.0.248.111/22' + vm_int_iface: vm-br-eth2 + vlan: + iface: 'eth3' + inet_type: 'manual' + vm_int_iface: vm-br-eth3 + vxlan: + iface: 'eth4' + inet_type: 'static' + address: '10.0.240.111/22' + vm_int_iface: vm-br-eth4 + storage: + iface: 'eth5' + inet_type: 'static' + address: '10.0.244.111/22' + vm_int_iface: vm-br-eth5 diff --git a/multi-node-aio/playbooks/inventory b/multi-node-aio/playbooks/inventory index 7f39eb78..d5dc146d 100644 --- a/multi-node-aio/playbooks/inventory +++ b/multi-node-aio/playbooks/inventory @@ -1,50 +1,84 @@ +################################## ALL HOSTS ################################## [all] -localhost ansible_connection=local -mnaio1 ansible_host=10.0.2.1 +# Local host +localhost ansible_connection=local -infra1 ansible_host=10.0.236.100 -infra2 ansible_host=10.0.236.101 -infra3 ansible_host=10.0.236.102 -log1 ansible_host=10.0.236.103 -compute1 ansible_host=10.0.236.105 -compute2 ansible_host=10.0.236.106 -cinder1 ansible_host=10.0.236.107 -cinder2 ansible_host=10.0.236.108 -swift1 ansible_host=10.0.236.109 -swift2 ansible_host=10.0.236.110 -swift3 ansible_host=10.0.236.111 -loadbalancer1 ansible_host=10.0.236.112 +# MNAIO host +mnaio1 ansible_host=10.0.2.1 ansible_connection=local -[pxe_hosts] -mnaio1 +# MNAIO VMs +infra1 ansible_host=10.0.236.100 +infra2 ansible_host=10.0.236.101 +infra3 ansible_host=10.0.236.102 +cinder2 ansible_host=10.0.236.108 +logging1 ansible_host=10.0.236.103 +compute1 ansible_host=10.0.236.105 +compute2 ansible_host=10.0.236.106 +cinder1 ansible_host=10.0.236.107 +swift1 ansible_host=10.0.236.109 +swift2 ansible_host=10.0.236.110 +swift3 ansible_host=10.0.236.111 +loadbalancer1 ansible_host=10.0.236.112 -[dhcp_hosts] -mnaio1 +################################# MNAIO HOSTS ################################# +# The group "vm_hosts" is used to define all host machines that will be running +# traditional virtualization using KVM. [vm_hosts] mnaio1 +################################## PXE HOSTS ################################## + +# The group "mnaio_hosts" is used to define all host machines that will serve +# the purpose of running an MNAIO test environment. +[mnaio_hosts] +mnaio1 + +# The group "pxe_hosts" is used to setup all systems that will be responsible +# for PXE boot. This will install all of the needed capabilities to TFTP serve +# system images. +[pxe_hosts] +mnaio1 + +# The group "dhcp_hosts" is used to setup all systems that will be responsible +# for DHCP. This is not required as external DHCP could be used. +[dhcp_hosts] +mnaio1 + +# The group "pxe_servers" is used to create PXE specific configurations for +# each host machines. +[pxe_servers] +cinder1 +cinder2 +compute1 +compute2 +infra1 +infra2 +infra3 +loadbalancer1 +logging1 +swift1 +swift2 +swift3 + +################################## OSA HOSTS ################################## + +# The group "deploy_hosts" is used to define where an OSA deployment will +# originate from. [deploy_hosts] infra1 +############################### OSA MNAIO HOSTS ############################### + +# The group "swift_hosts" is used in the MNAIO setup to create the basic drive +# setup needed for a swift deployment. [swift_hosts] swift1 swift2 swift3 +# The group "cinder_hosts" is used in the MNAIO setup to create the basic drive +# setup needed for a cinder LVM deployment. [cinder_hosts] cinder1 cinder2 - -[openstack_hosts] -infra1 -infra2 -infra3 -log1 -compute1 -compute2 -cinder2 -cinder1 -swift1 -swift2 -swift3 diff --git a/multi-node-aio/playbooks/kvm/kvm-vm.xml b/multi-node-aio/playbooks/kvm/kvm-vm.xml index f9a195c7..f44bcd43 100644 --- a/multi-node-aio/playbooks/kvm/kvm-vm.xml +++ b/multi-node-aio/playbooks/kvm/kvm-vm.xml @@ -1,10 +1,10 @@ - {{ item.server_hostname }} - {{ item.server_vm_ram }} - {{ item.server_vm_ram }} -{% set _vcpus_threads = ((item.server_vm_vcpus | int) // 2) %} + {{ hostvars[item]['server_hostname'] }} + {{ hostvars[item]['server_vm_ram'] }} + {{ hostvars[item]['server_vm_ram'] }} +{% set _vcpus_threads = ((hostvars[item]['server_vm_vcpus'] | int) // 2) %} {% set vcpus_threads = (_vcpus_threads | int) == 0 | ternary('1', _vcpus_threads) %} -{% set vcpus = (item.server_vm_vcpus | int) * (vcpus_threads | int) %} +{% set vcpus = (hostvars[item]['server_vm_vcpus'] | int) * (vcpus_threads | int) %} {{ vcpus | int }} /machine @@ -18,7 +18,7 @@ - + @@ -36,7 +36,7 @@ /usr/bin/kvm-spice - +
@@ -49,10 +49,10 @@
-{% for _key, _value in item.server_networks.items()|sort(attribute='1.iface') %} +{% for _key, _value in hostvars[item]['server_networks'].items()|sort(attribute='1.iface') %} -{% if _key == item.server_vm_primary_network %} - +{% if _key == hostvars[item]['server_vm_primary_network'] %} + {% endif %} @@ -98,4 +98,4 @@ - \ No newline at end of file + diff --git a/multi-node-aio/playbooks/pxe/debian/mnaio-bridges.cfg.j2 b/multi-node-aio/playbooks/mnaio/debian/mnaio-bridges.cfg.j2 similarity index 100% rename from multi-node-aio/playbooks/pxe/debian/mnaio-bridges.cfg.j2 rename to multi-node-aio/playbooks/mnaio/debian/mnaio-bridges.cfg.j2 diff --git a/multi-node-aio/playbooks/pxe/debian/mnaio-post-install-script.sh.j2 b/multi-node-aio/playbooks/mnaio/debian/mnaio-post-install-script.sh.j2 similarity index 80% rename from multi-node-aio/playbooks/pxe/debian/mnaio-post-install-script.sh.j2 rename to multi-node-aio/playbooks/mnaio/debian/mnaio-post-install-script.sh.j2 index 753bd3c4..cc81cb70 100644 --- a/multi-node-aio/playbooks/pxe/debian/mnaio-post-install-script.sh.j2 +++ b/multi-node-aio/playbooks/mnaio/debian/mnaio-post-install-script.sh.j2 @@ -12,4 +12,4 @@ chmod 0700 /root/.ssh echo "{{ tftp_ssh_key }}" >> /root/.ssh/authorized_keys wget --no-proxy http://{{ tftp_server }}/networking/mnaio-bridges.cfg -O /etc/network/interfaces.d/mnaio-bridges.cfg -wget --no-proxy http://{{ tftp_server }}/networking/basic-interface.cfg -O /etc/network/interfaces +wget --no-proxy http://{{ tftp_server }}/networking/basic-debian-interface.cfg -O /etc/network/interfaces diff --git a/multi-node-aio/playbooks/osa/openstack_user_config.yml b/multi-node-aio/playbooks/osa/openstack_user_config.yml index 669a5bfb..479eb89c 100644 --- a/multi-node-aio/playbooks/osa/openstack_user_config.yml +++ b/multi-node-aio/playbooks/osa/openstack_user_config.yml @@ -87,7 +87,7 @@ global_overrides: ### Anchors ### log_block: &log_block - log1: + logging1: ip: 10.0.236.103 infra_block: &infra_block diff --git a/multi-node-aio/playbooks/pxe/debian/basic-interface.cfg b/multi-node-aio/playbooks/pxe/debian/basic-interface.cfg index 02e7e50b..564167e0 100644 --- a/multi-node-aio/playbooks/pxe/debian/basic-interface.cfg +++ b/multi-node-aio/playbooks/pxe/debian/basic-interface.cfg @@ -4,4 +4,4 @@ auto lo iface lo inet loopback -source /etc/network/interfaces.d/*.cfg \ No newline at end of file +source /etc/network/interfaces.d/*.cfg diff --git a/multi-node-aio/playbooks/pxe/debian/vm-bridges.cfg.j2 b/multi-node-aio/playbooks/pxe/debian/vm-bridges.cfg.j2 index e2c56074..483f6ca3 100644 --- a/multi-node-aio/playbooks/pxe/debian/vm-bridges.cfg.j2 +++ b/multi-node-aio/playbooks/pxe/debian/vm-bridges.cfg.j2 @@ -1,6 +1,7 @@ # Physical interface, could be bond. This only needs to be set once +{% set server_networks = hostvars[item]['server_networks'] %} -{% for key, value in item.server_networks.items()|sort(attribute='1.iface') %} +{% for key, value in server_networks.items()|sort(attribute='1.iface') %} {% if value.iface is defined %} auto {{ value.iface }} iface {{ value.iface }} inet manual @@ -8,7 +9,7 @@ iface {{ value.iface }} inet manual {% endfor %} -{% for key, value in item.server_networks.items()|sort(attribute='1.iface') %} +{% for key, value in server_networks.items()|sort(attribute='1.iface') %} auto br-{{ key }} iface br-{{ key }} inet {{ value.inet_type }} bridge_stp off diff --git a/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 b/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 index c85c4d54..20034141 100644 --- a/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 +++ b/multi-node-aio/playbooks/pxe/debian/vm-post-install-script.sh.j2 @@ -12,7 +12,7 @@ chmod 0700 /root/.ssh echo "{{ tftp_ssh_key }}" >> /root/.ssh/authorized_keys wget --no-proxy http://{{ tftp_server }}/networking/$(cat /etc/hostname)-bridges.cfg -O /etc/network/interfaces.d/vm-bridges.cfg -wget --no-proxy http://{{ tftp_server }}/networking/basic-interface.cfg -O /etc/network/interfaces +wget --no-proxy http://{{ tftp_server }}/networking/basic-debian-interface.cfg -O /etc/network/interfaces cat > /etc/network/if-up.d/post-up-rules <