diff --git a/nova-management.yml b/glance-controller.yml similarity index 61% rename from nova-management.yml rename to glance-controller.yml index 12a5bbd..b34e80b 100644 --- a/nova-management.yml +++ b/glance-controller.yml @@ -3,7 +3,7 @@ name: Dummy to gather facts tasks: [] -- hosts: nova-management +- hosts: glance-controller become: True roles: - - nova-management + - glance-controller diff --git a/hosts b/hosts index 62d6448..bb0e3dc 100644 --- a/hosts +++ b/hosts @@ -7,7 +7,7 @@ openstack01-node03 [dockerregistry] openstack01-node01 -[glance] +[glance-controller] openstack01-node02 [horizon] @@ -37,5 +37,5 @@ run_options="" [next_cassandra:vars] run_options="-e CASSANDRA_SEEDS=172.23.41.1" -[nova-management] +[nova-controller] openstack01-node01 diff --git a/glance.yml b/nova-controller.yml similarity index 63% rename from glance.yml rename to nova-controller.yml index ab3911b..8f42907 100644 --- a/glance.yml +++ b/nova-controller.yml @@ -3,7 +3,7 @@ name: Dummy to gather facts tasks: [] -- hosts: glance +- hosts: nova-controller become: True roles: - - glance + - nova-controller diff --git a/roles/glance/tasks/main.yml b/roles/glance-controller/tasks/main.yml similarity index 77% rename from roles/glance/tasks/main.yml rename to roles/glance-controller/tasks/main.yml index d851b4e..04dbcb0 100644 --- a/roles/glance/tasks/main.yml +++ b/roles/glance-controller/tasks/main.yml @@ -26,9 +26,11 @@ -e "MYSQL_HOST={{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }}" -e "MYSQL_ROOT_PASSWORD=geheim" -e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" - -e "GLANCE_HOST={{ hostvars[groups['glance'][0]]['ansible_default_ipv4']['address'] }}" + -e "GLANCE_HOST={{ hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address'] }}" -e "GLANCE_USER=glance" -e "GLANCE_PASSWORD=geheim" + --add-host=nova-controller:{{ hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address'] }} \ + --add-host=keystone:{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }} \ hpc/openstack-glance /etc/bootstrap.sh tags: bootstrap diff --git a/roles/glance/templates/glance.service b/roles/glance-controller/templates/glance.service similarity index 79% rename from roles/glance/templates/glance.service rename to roles/glance-controller/templates/glance.service index 96924b2..0832091 100644 --- a/roles/glance/templates/glance.service +++ b/roles/glance-controller/templates/glance.service @@ -13,10 +13,9 @@ ExecStart=/usr/bin/docker run --name %n \ -e "MYSQL_HOST={{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }}" \ -e "MYSQL_ROOT_PASSWORD=geheim" \ -e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" \ - -e "GLANCE_HOST={{ hostvars[groups['glance'][0]]['ansible_default_ipv4']['address'] }}" \ + -e "GLANCE_HOST={{ hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address'] }}" \ -e "GLANCE_USER=glance" \ -e "GLANCE_PASSWORD=geheim" \ - --add-host="controller:{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" \ -p 9292:9292 \ hpc/openstack-glance diff --git a/roles/horizon/tasks/main.yml b/roles/horizon/tasks/main.yml index 0a6a27c..48c78f1 100644 --- a/roles/horizon/tasks/main.yml +++ b/roles/horizon/tasks/main.yml @@ -1,13 +1,5 @@ -# Build and install a docker image for horizon. +# Run hpc/horizon --- -- name: Make build and persistent directories - file: - path: "{{ item }}" - state: directory - mode: 0777 - with_items: - - /srv/horizon - - name: install service file. template: src: templates/horizon.service diff --git a/roles/horizon/templates/horizon.service b/roles/horizon/templates/horizon.service index de0a671..cd554c6 100644 --- a/roles/horizon/templates/horizon.service +++ b/roles/horizon/templates/horizon.service @@ -6,8 +6,7 @@ Requires=docker.service [Service] TimeoutStartSec=0 Restart=always -ExecStartPre=-/usr/bin/docker stop %n -ExecStartPre=-/usr/bin/docker rm %n +ExecStartPre=-/usr/bin/docker rm -f %n ExecStart=/usr/bin/docker run --name %n \ -e "MEMCACHED_SERVER={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" \ -e "OPENSTACK_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" \ diff --git a/roles/nova-controller/tasks/main.yml b/roles/nova-controller/tasks/main.yml new file mode 100644 index 0000000..0e224fc --- /dev/null +++ b/roles/nova-controller/tasks/main.yml @@ -0,0 +1,37 @@ +# Build and install a docker image for nova-controller. +--- +- 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 + -e "MY_IP={{ hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address'] }}" + -e "NOVA_USER=nova" + -e "NOVA_PASSWORD=geheim" + -e "NOVA_PLACEMENT_USER=placement" + -e "NOVA_PLACEMENT_PASSWORD=geheim" + -e "RABBIT_USER=openstack" + -e "RABBIT_PASSWORD=geheim" + -e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" + -e "MEMCACHED_HOST={{ hostvars[groups['memcached'][0]]['ansible_default_ipv4']['address'] }}" + -e "MYSQL_HOST={{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }}" + -e "MYSQL_ROOT_PASSWORD=geheim" + -e "NOVA_CONTROLLER_HOST=={{ hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address'] }}" + -e "GLANCE_CONTROLLER_HOST=={{ hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address'] }}" + --add-host=mariadb:{{ hostvars[groups['databases'][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-controller/templates/nova-controller.service b/roles/nova-controller/templates/nova-controller.service new file mode 100644 index 0000000..d38f3c8 --- /dev/null +++ b/roles/nova-controller/templates/nova-controller.service @@ -0,0 +1,32 @@ +[Unit] +Description=Openstack nova-controller Container +After=docker.service +Requires=docker.service + +[Service] +TimeoutStartSec=0 +Restart=always +ExecStartPre=-/usr/bin/docker rm -f %n +ExecStart=/usr/bin/docker run --name %n \ + -e "MY_IP={{ hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address'] }}" \ + -e "NOVA_USER=nova" \ + -e "NOVA_PASSWORD=geheim" \ + -e "NOVA_PLACEMENT_USER=placement" \ + -e "NOVA_PLACEMENT_PASSWORD=geheim" \ + -e "RABBIT_USER=openstack" \ + -e "RABBIT_PASSWORD=geheim" \ + -e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" \ + -e "MEMCACHED_HOST={{ hostvars[groups['memcached'][0]]['ansible_default_ipv4']['address'] }}" \ + -e "MYSQL_HOST={{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }}" \ + -e "MYSQL_ROOT_PASSWORD=geheim" \ + -e "NOVA_CONTROLLER_HOST={{ hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address'] }}" \ + -e "GLANCE_CONTROLLER_HOST={{ hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address'] }}" \ + --add-host=nova-controller:{{ hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address'] }} \ + --add-host=keystone:{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }} \ + --add-host=mariadb:{{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }} \ + -p 8774:8774 \ + -p 8778:8778 \ + hpc/novacontroller /etc/run.sh + +[Install] +WantedBy=multi-user.target diff --git a/roles/nova-management/tasks/main.yml b/roles/nova-management/tasks/main.yml deleted file mode 100644 index b526239..0000000 --- a/roles/nova-management/tasks/main.yml +++ /dev/null @@ -1,25 +0,0 @@ -# Build and install a docker image for nova-controller. ---- -- 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 deleted file mode 100644 index faa6b2e..0000000 --- a/roles/nova-management/templates/nova-controller.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Openstack nova-controller Container -After=docker.service -Requires=docker.service - -[Service] -TimeoutStartSec=0 -Restart=always -ExecStartPre=-/usr/bin/docker rm -f %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'] }} \ - --add-host=keystone:{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }} \ - -p 8774:8774 \ - -p 8778:8778 \ - hpc/novacontroller /etc/run.sh - -[Install] -WantedBy=multi-user.target