Add scenario 012 - overlcoud baremetal+ansible-ml2

Used by a new featureset[1] that uses the neutron ansible-networking driver
to configure the switch providing networking for overcloud ironic
nodes such that tenant networks are segregated via vlan.

This scenario also sets up ssh keys so that ansible inside the neutron
container can ssh to the controller to configure OVS.

The new scenario also includes a temporary workaround to upgrade
ansible in the neutron container, this can be removed once ansible
in the container is v2.5.8+

Also remove scenario011 as the patches that used it never merged and
now the tennant networks are working in the overcloud, we'll test
with this instead.

[1] - https://review.openstack.org/#/c/579601/

Change-Id: Ife83825216ccb96a5f24918f42a757d0c48b0e9d
This commit is contained in:
Derek Higgins 2018-09-03 17:00:32 +01:00
parent f4b4804be7
commit ca3d5e47b0
2 changed files with 32 additions and 2 deletions

View File

@ -13,7 +13,7 @@ resources:
config: | config: |
#!/bin/bash #!/bin/bash
cd /etc/yum.repos.d cd /etc/yum.repos.d
echo 'nameserver 8.8.8.8' > /etc/resolv.conf echo 'nameserver 1.1.1.1' > /etc/resolv.conf
curl https://git.openstack.org/cgit/openstack/tripleo-repos/plain/tripleo_repos/main.py | python - current-tripleo curl https://git.openstack.org/cgit/openstack/tripleo-repos/plain/tripleo_repos/main.py | python - current-tripleo
yum install -y python2-virtualbmc epel-release libvirt-client libvirt-daemon libvirt qemu-kvm-ev yum install -y python2-virtualbmc epel-release libvirt-client libvirt-daemon libvirt qemu-kvm-ev
yum install -y qemu-system-x86 # <-- needs epel yum install -y qemu-system-x86 # <-- needs epel
@ -22,8 +22,27 @@ resources:
git clone https://git.openstack.org/openstack/ironic /tmp/ironic git clone https://git.openstack.org/openstack/ironic /tmp/ironic
mkdir -p /var/log/bmlogs mkdir -p /var/log/bmlogs
chmod 777 /var/log/bmlogs chmod 777 /var/log/bmlogs
# Create a ssh keypair and place the private key somewhere ansible inside the
# neutron_api container can read it.
ssh-keygen -P "" -f /etc/puppet/ci-key
chmod 644 /etc/puppet/ci-key
cat /etc/puppet/ci-key.pub >> /root/.ssh/authorized_keys
# neutron_api workaround for https://github.com/ansible/ansible/issues/42108
# remove when ansible v2.5.8+ is in the container image
cat << EOF | docker exec -i -u 0 neutron_api /bin/bash -x
yum install -y epel-release
yum update -y ansible
EOF
docker restart neutron_api
# nohup needed as vbmc seems to keep stdin open # nohup needed as vbmc seems to keep stdin open
nohup /tmp/ironic/devstack/tools/ironic/scripts/create-node.sh -n node1 -c 1 -m 3072 -d 10 -b br-ex -p 1161 -M 1350 -f qcow2 -a x86_64 -E qemu -e /usr/bin/qemu-system-x86_64 -l /var/log/bmlogs -A 66:0d:1d:d8:0b:a3 > ~zuul/create-node.log 2>&1 < /dev/null & nohup /tmp/ironic/devstack/tools/ironic/scripts/create-node.sh -n node1 -c 1 -m 3072 -d 10 -b br-ex -p 1161 -M 1350 -f qcow2 -a x86_64 -E qemu -e /usr/bin/qemu-system-x86_64 -l /var/log/bmlogs -A 66:0d:1d:d8:0b:11 > ~zuul/create-node-1.log 2>&1 < /dev/null
nohup /tmp/ironic/devstack/tools/ironic/scripts/create-node.sh -n node2 -c 1 -m 3072 -d 10 -b br-ex -p 1162 -M 1350 -f qcow2 -a x86_64 -E qemu -e /usr/bin/qemu-system-x86_64 -l /var/log/bmlogs -A 66:0d:1d:d8:0b:22 > ~zuul/create-node-2.log 2>&1 < /dev/null &
disown -a disown -a
ExtraDeployments: ExtraDeployments:
type: OS::Heat::SoftwareDeploymentGroup type: OS::Heat::SoftwareDeploymentGroup

View File

@ -18,6 +18,7 @@ resource_registry:
OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml
OS::TripleO::NodeExtraConfigPost: ../common/vbmc_setup.yaml OS::TripleO::NodeExtraConfigPost: ../common/vbmc_setup.yaml
OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2Ansible
parameter_defaults: parameter_defaults:
ControllerServices: ControllerServices:
@ -57,6 +58,7 @@ parameter_defaults:
- OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::Sshd - OS::TripleO::Services::Sshd
- OS::TripleO::Services::Iscsid
- OS::TripleO::Services::CinderApi - OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderScheduler - OS::TripleO::Services::CinderScheduler
- OS::TripleO::Services::CinderVolume - OS::TripleO::Services::CinderVolume
@ -70,3 +72,12 @@ parameter_defaults:
SwiftCeilometerPipelineEnabled: false SwiftCeilometerPipelineEnabled: false
IronicCleaningDiskErase: 'metadata' IronicCleaningDiskErase: 'metadata'
NovaSchedulerDiscoverHostsInCellsInterval: 15 NovaSchedulerDiscoverHostsInCellsInterval: 15
NeutronMechanismDrivers: openvswitch,ansible
NeutronNetworkType: vlan
NeutronTypeDrivers: local,vxlan,vlan,flat
IronicDefaultNetworkInterface: neutron
IronicAutomatedClean: false
NeutronFlatNetworks: datacentre
NeutronNetworkVLANRanges: 'datacentre:500:599,tenant:300:399'
ML2HostConfigs: { "net-ans-br": { "ansible_network_os": "openvswitch", "ansible_host": "127.0.0.1", "ansible_user": "root", "ansible_ssh_private_key_file": "/etc/puppet/ci-key"}}
NeutronBridgeMappings: 'datacentre:br-ex,tenant:br-tenant'