tripleo-heat-templates/ci/common/vbmc_setup.yaml
Derek Higgins ca3d5e47b0 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
2018-10-24 12:38:34 +01:00

54 lines
2.2 KiB
YAML

heat_template_version: rocky
parameters:
servers:
type: json
resources:
ExtraConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: |
#!/bin/bash
cd /etc/yum.repos.d
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
yum install -y python2-virtualbmc epel-release libvirt-client libvirt-daemon libvirt qemu-kvm-ev
yum install -y qemu-system-x86 # <-- needs epel
yum remove -y epel-release
systemctl start libvirtd
git clone https://git.openstack.org/openstack/ironic /tmp/ironic
mkdir -p /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 /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
ExtraDeployments:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: servers}
config: {get_resource: ExtraConfig}
actions: ['CREATE'] # Only do this on CREATE
name: VirtNodeExtraConfig