- hosts: all vars: nodepool_config_dir: "/etc/nodepool" nodepool_log_dir: "/var/log/nodepool" NODEPOOL_KEY: "$HOME/.ssh/id_nodepool" NODEPOOL_KEY_NAME: "root" NODEPOOL_PUBKEY: "$HOME/.ssh/id_nodepool.pub" NODEPOOL_INSTALL: "$HOME/nodepool-venv" NODEPOOL_CACHE_GET_PIP: "/opt/stack/cache/files/get-pip.py" NODEPOOL_CONFIG: "{{ nodepool_config_dir }}/nodepool.yaml" NODEPOOL_DIB_BASE_PATH: "/opt/dib" tasks: - name: Write clouds.yaml include_tasks: write_clouds_yaml.yaml - name: Create nodepool flavors args: executable: /bin/bash shell: | source /opt/devstack/openrc admin admin nova flavor-create nodepool-512 64 512 5 1 nova flavor-create nodepool-1024 128 1024 5 1 - name: Create security groups args: executable: /bin/bash shell: | source /opt/devstack/openrc admin admin openstack --os-project-name demo --os-username demo security group rule create --ingress --protocol tcp --dst-port 1:65535 --remote-ip 0.0.0.0/0 default openstack --os-project-name demo --os-username demo security group rule create --ingress --protocol udp --dst-port 1:65535 --remote-ip 0.0.0.0/0 default - name: Create unmanaged VM args: executable: /bin/bash shell: | source /opt/devstack/openrc admin admin openstack network list cirros_image=$(openstack --os-project-name demo --os-username demo image list | grep cirros | awk '{print $4}' | head -n1) openstack --os-project-name demo --os-username demo server create --flavor cirros256 --image $cirros_image unmanaged-vm --network public - name: Create nodepool SSH keypair args: executable: /bin/bash shell: | source /opt/devstack/openrc admin admin ssh-keygen -f {{ NODEPOOL_KEY }} -P "" nova --os-project-name demo --os-username demo keypair-add --pub-key {{ NODEPOOL_PUBKEY }} {{ NODEPOOL_KEY_NAME }} - name: Write nodepool elements args: executable: /bin/bash shell: cmd: | sudo mkdir -p $(dirname {{ NODEPOOL_CONFIG }})/elements/nodepool-setup/install.d sudo mkdir -p $(dirname {{ NODEPOOL_CONFIG }})/elements/nodepool-setup/root.d cat > /tmp/40-nodepool-setup < /tmp/50-apt-allow-unauthenticated <