# Build and install a docker image for cinder. --- - name: include secrets include_vars: file: ../../secrets.yml name: secrets - set_fact: docker_image: registry.webhosting.rug.nl/hpc/openstack-cinder-storage:latest env_vars: > -e "MY_IP={{ listen_ip | default(ansible_default_ipv4.address) }}" -e "CINDER_HOST={{ listen_ip | default(hostvars[groups['cinder-storage'][0]]['ansible_default_ipv4']['address']) }}" -e "CINDER_PASSWORD={{ secrets['CINDER_PASSWORD'] }}" -e "CINDER_USER=cinder" -e "GLANCE_HOST={{ listen_ip | default(hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address']) }}" -e "KEYSTONE_HOST={{ listen_ip | default(hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address']) }}" -e "MYSQL_HOST={{ listen_ip | default(hostvars[groups['databases'][0]]['ansible_default_ipv4']['address']) }}" -e "MYSQL_ROOT_PASSWORD={{ secrets['MYSQL_ROOT_PASSWORD'] }}" -e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}" -e "RABBIT_HOST={{ listen_ip | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}" -e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}" -e "RABBIT_USER=openstack" - name: pull docker image docker_image: name: "{{ docker_image }}" tags: pull - name: Make build and persistent directories file: path: "{{ item }}" state: directory mode: 0777 with_items: - /srv/cinder-storage - /srv/cinder-storage/root - name: initial setup command: > /usr/bin/docker run --rm --privileged {{ env_vars }} -v /srv/cinder-storage/root:/root \ -v "{{ storage_volume }}":/dev/cinder_storage_volume \ {{ docker_image }} /etc/bootstrap.sh tags: bootstrap - name: install service file. template: src: templates/cinder-storage.service dest: /etc/systemd/system/cinder-storage.service mode: 644 owner: root group: root - command: systemctl daemon-reload - name: start service at boot. command: systemctl reenable cinder-storage.service - name: make sure service is started systemd: name: cinder-storage.service state: restarted