From 7f58d25b585132142607a59e52bcc155a6311031 Mon Sep 17 00:00:00 2001 From: Egon Rijpkema Date: Mon, 21 Aug 2017 11:36:43 +0200 Subject: [PATCH] Added a cinder controller node. --- roles/cinder-controller/tasks/main.yml | 58 +++++++++++++++++++ .../templates/cinder-controller.service | 18 ++++++ 2 files changed, 76 insertions(+) create mode 100644 roles/cinder-controller/tasks/main.yml create mode 100644 roles/cinder-controller/templates/cinder-controller.service diff --git a/roles/cinder-controller/tasks/main.yml b/roles/cinder-controller/tasks/main.yml new file mode 100644 index 0000000..b9471ac --- /dev/null +++ b/roles/cinder-controller/tasks/main.yml @@ -0,0 +1,58 @@ +# Build and install a docker image for cinder. +--- +- name: include secrets + include_vars: + file: ../../secrets.yml + name: secrets + +- set_fact: + docker_image: webhost12.service.rug.nl/hpc/openstack-cinder-controller:latest + env_vars: > + -e "MY_IP={{ ansible_default_ipv4.address }}" + -e "CINDER_HOST={{ hostvars[groups['cinder-controller'][0]]['ansible_default_ipv4']['address'] }}" + -e "CINDER_PASSWORD={{ secrets['CINDER_PASSWORD'] }}" + -e "CINDER_USER=cinder" + -e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" + -e "MYSQL_HOST={{ 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={{ 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 + - /srv/cinder/root + +- name: install service file. + template: + src: templates/cinder-controller.service + dest: /etc/systemd/system/cinder-controller.service + mode: 644 + owner: root + group: root + +- command: systemctl daemon-reload + +- name: Initialize database. + command: > + /usr/bin/docker run --rm + {{ env_vars }} + -v /srv/cinder/root:/root \ + {{ docker_image }} /etc/bootstrap.sh + tags: bootstrap + +- name: make sure service is started + systemd: + name: cinder-controller.service + state: restarted diff --git a/roles/cinder-controller/templates/cinder-controller.service b/roles/cinder-controller/templates/cinder-controller.service new file mode 100644 index 0000000..0dc639e --- /dev/null +++ b/roles/cinder-controller/templates/cinder-controller.service @@ -0,0 +1,18 @@ +[Unit] +Description=Openstack Glance Container +After=docker.service +Requires=docker.service + +[Service] +TimeoutStartSec=0 +Restart=always +ExecStartPre=-/usr/bin/docker kill %n +ExecStartPre=-/usr/bin/docker rm %n +ExecStart=/usr/bin/docker run --name %n \ + {{ env_vars | replace('\n', '') }} \ + -v /srv/glance/root:/root \ + -p 8776:8776 \ + {{ docker_image }} + +[Install] +WantedBy=multi-user.target