From be8e476e3ed47cf87be69f4fd768290188675a3f Mon Sep 17 00:00:00 2001 From: Egon Rijpkema Date: Fri, 23 Jun 2017 11:00:21 +0200 Subject: [PATCH] Added playbook for hpc/nova-controller docker --- nova-management.yml | 5 ++ roles/nova-management/tasks/main.yml | 48 +++++++++++++++++++ .../templates/nova-controller.service | 19 ++++++++ 3 files changed, 72 insertions(+) create mode 100644 nova-management.yml create mode 100644 roles/nova-management/tasks/main.yml create mode 100644 roles/nova-management/templates/nova-controller.service diff --git a/nova-management.yml b/nova-management.yml new file mode 100644 index 0000000..d8e8112 --- /dev/null +++ b/nova-management.yml @@ -0,0 +1,5 @@ +--- +- hosts: nova-management + become: True + roles: + - nova-management diff --git a/roles/nova-management/tasks/main.yml b/roles/nova-management/tasks/main.yml new file mode 100644 index 0000000..2bd2422 --- /dev/null +++ b/roles/nova-management/tasks/main.yml @@ -0,0 +1,48 @@ +# Build and install a docker image for nova-controller. +--- +- include: ../common/tasks/docker.yml + +- name: Make build and persistent directories + file: + path: "{{ item }}" + state: directory + mode: 0777 + with_items: + - /srv/nova-controller + +# Todo: remove this when we have a docker repo +# Disabled because of https://github.com/ansible/ansible/issues/20653 +#- name: clone docker-glance repo +# git: +# accept_hostkey: True +# repo: ssh://git@git.webhosting.rug.nl:222/HPC/docker-nova-service +# dest: /srv/docker-nova-service + +- name: build nova-controller image + docker_image: + path: /srv/docker-nova-service + name: hpc/novacontroller + +- name: install service file. + template: + src: templates/nova-controller.service + dest: /etc/systemd/system/nova-controller.service + mode: 644 + owner: root + group: root + +- command: systemctl daemon-reload + +- name: Initialize database. + command: > + /usr/bin/docker run --rm + --add-host=mariadb:{{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }} + --add-host=controller:{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }} + hpc/novacontroller + /etc/bootstrap.sh + tags: bootstrap + +- name: make sure service is started + systemd: + name: nova-controller.service + state: restarted diff --git a/roles/nova-management/templates/nova-controller.service b/roles/nova-management/templates/nova-controller.service new file mode 100644 index 0000000..ff41d17 --- /dev/null +++ b/roles/nova-management/templates/nova-controller.service @@ -0,0 +1,19 @@ +[Unit] +Description=Openstack nova-controller Container +After=docker.service +Requires=docker.service + +[Service] +TimeoutStartSec=0 +Restart=always +ExecStartPre=-/usr/bin/docker stop %n +ExecStartPre=-/usr/bin/docker rm %n +ExecStart=/usr/bin/docker run --name %n \ + --add-host=mariadb:{{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }} \ + --add-host=controller:{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }} \ + -p 8774:8774 \ + -p 8778:8778 \ + hpc/novacontroller /etc/run.sh + +[Install] +WantedBy=multi-user.target