4 Commits

Author SHA1 Message Date
Egon Rijpkema
0c605af3ae Check if this role is deployed as part of the cluster
This makes it possible to deploy a galara cluster in one set of hosts
and a separate stand alone mariadb on another host.
2018-05-17 16:12:28 +02:00
Egon Rijpkema
ca6adb44f6 It should be include_playbook
... the replacement for impotrt for static includes, that is....
2018-04-04 11:28:16 +02:00
Egon Rijpkema
c0d50d7444 include is deprecated. 2018-03-22 09:21:22 +01:00
Egon Rijpkema
f8a3179b74 Ensure installation of same openstack client 2018-02-22 16:35:44 +01:00
33 changed files with 122 additions and 399 deletions

View File

@@ -1,5 +1,2 @@
[defaults] [defaults]
inventory = merlin inventory = merlin
stdout_callback = debug
vault_password_file = .vault_pass.txt
forks = 20

View File

@@ -1,14 +1,14 @@
--- ---
- include: common.yml - import_tasks: common.yml
- include: rabbitmq.yml - import_tasks: rabbitmq.yml
- include: memcached.yml - import_tasks: memcached.yml
- include: mariadb.yml - import_tasks: mariadb.yml
- include: keystone.yml - import_tasks: keystone.yml
- include: glance-controller.yml - import_tasks: glance-controller.yml
- include: nova-controller.yml - import_tasks: nova-controller.yml
- include: neutron-controller.yml - import_tasks: neutron-controller.yml
- include: cinder-controller.yml - import_tasks: cinder-controller.yml
- include: cinder-storage.yml - import_tasks: cinder-storage.yml
- include: nova-compute.yml - import_tasks: nova-compute.yml
- include: horizon.yml - import_tasks: horizon.yml
- include: gcc-post-install.yml - import_tasks: gcc-post-install.yml

View File

@@ -1,9 +0,0 @@
---
use_ceph: true
ceph_mon_initial_members:
ceph_mon_host:
ceph_public_network:
ceph_osd_pool_default_size:
ceph_compute_client_keyring:
ceph_cinder_client_keyring:
ceph_images_client_keyring:

View File

@@ -1,26 +0,0 @@
[databases]
openstack03.gcc.rug.nl
[keystone]
openstack03.gcc.rug.nl
[glance-controller]
openstack03.gcc.rug.nl
[horizon]
openstack03.gcc.rug.nl
[rabbitmq]
openstack03.gcc.rug.nl
[memcached]
openstack03.gcc.rug.nl
[neutron-controller]
openstack03.gcc.rug.nl
[nova-controller]
openstack03.gcc.rug.nl
[nova-compute]
openstack03.gcc.rug.nl

31
merlin
View File

@@ -1,11 +1,9 @@
[nova-compute] [nova-compute]
merlin-managementnode002 physical_interface_mappings=provider:enp5s0f1 overlay_ip=172.23.43.102 merlin-managementnode002 physical_interface_mappings=provider:eno3
merlin-managementnode003 physical_interface_mappings=provider:enp5s0f1 overlay_ip=172.23.43.103 merlin-managementnode003 physical_interface_mappings=provider:eno3
merlin-node001 physical_interface_mappings=provider:enp130s0f0 overlay_ip=172.23.43.1 merlin-node001 physical_interface_mappings=provider:eno3
merlin-node002 physical_interface_mappings=provider:enp130s0f0 overlay_ip=172.23.43.2 merlin-node003 physical_interface_mappings=provider:eno3
merlin-node003 physical_interface_mappings=provider:enp130s0f0 overlay_ip=172.23.43.3 merlin-node004 physical_interface_mappings=provider:eno3
merlin-node004 physical_interface_mappings=provider:enp130s0f0 overlay_ip=172.23.43.4
merlin-node005 physical_interface_mappings=provider:enp130s0f0 overlay_ip=172.23.43.5
[databases] [databases]
merlin-managementnode001 merlin-managementnode001
@@ -30,25 +28,10 @@ merlin-managementnode001
merlin-managementnode001 merlin-managementnode001
[neutron-controller] [neutron-controller]
merlin-managementnode001 physical_interface_mappings=provider:enp5s0f1 overlay_ip=172.23.43.101 merlin-managementnode001 physical_interface_mappings=provider:eno3
[heat] [heat]
merlin-managementnode001 merlin-managementnode001
[glance-controller] [glance-controller]
merlin-managementnode002 merlin-managementnode001
[cinder-controller]
merlin-managementnode003
[cinder-storage]
merlin-managementnode002
merlin-managementnode003
merlin-node001
merlin-node002
merlin-node003
merlin-node004
merlin-node005
[stor]
merlin-stor00[1:8]

View File

@@ -1,37 +0,0 @@
[nova-compute]
merlin-managementnode002 physical_interface_mappings=provider:eno3
merlin-managementnode003 physical_interface_mappings=provider:eno3
merlin-node001 physical_interface_mappings=provider:eno3
merlin-node003 physical_interface_mappings=provider:eno3
merlin-node004 physical_interface_mappings=provider:eno3
[databases]
merlin-managementnode001
merlin-managementnode002
merlin-managementnode003
[rabbitmq]
merlin-managementnode001
merlin-managementnode002
merlin-managementnode003
[horizon]
merlin-managementnode001
[memcached]
merlin-managementnode001
[nova-controller]
merlin-managementnode001
[keystone]
merlin-managementnode001
[neutron-controller]
merlin-managementnode001 physical_interface_mappings=provider:eno3
[heat]
merlin-managementnode001
[glance-controller]
merlin-managementnode001

View File

@@ -2,7 +2,7 @@
# This playbook will reset the instalation to facilitate a new installation. # This playbook will reset the instalation to facilitate a new installation.
# All data is lost! # All data is lost!
- hosts: all - hosts: all
become: true become: True
name: Dummy to gather facts name: Dummy to gather facts
tasks: tasks:
- name: Stop docker service - name: Stop docker service
@@ -13,16 +13,9 @@
state: stopped state: stopped
- name: remove volumes - name: remove volumes
shell: "rm -rf /srv" shell: "rm -rf /srv"
- name: remove network namespaces
shell: "rm /var/run/netns/*"
ignore_errors: true
- hosts: cinder-storage
- hosts: nova-compute become: True
gather_facts: false
become: true
tasks: tasks:
- name: kill all vm's - name: wipe cinder storage.
shell: "for machine in $(virsh list --uuid ); do virsh destroy $machine ; done" shell: "dd if=/dev/zero of={{ storage_volume }} bs=1M count=1 && sync"
- name: wipe all vm's
shell: "for machine in $(virsh list --uuid --all); do virsh undefine $machine ; done"

View File

@@ -15,11 +15,11 @@
- name: post install configuration - name: post install configuration
command: docker exec -i keystone.service bash -c "source /root/admin-openrc.sh && {{ item }}" command: docker exec -i keystone.service bash -c "source /root/admin-openrc.sh && {{ item }}"
with_items: with_items:
- openstack network create --share --external --provider-physical-network provider --provider-network-type vlan --provider-segment 985 vlan985 - openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
- > - >
openstack subnet create --subnet-range 172.23.59.0/22 --gateway 172.23.59.1 openstack subnet create --network provider
--network vlan985 --allocation-pool start=172.23.59.75,end=172.23.59.100 --allocation-pool start={{ allocation_pool['start'] }},end={{ allocation_pool['end'] }}
--dns-nameserver 172.23.32.248 vlan985_subnet --dns-nameserver {{ dns_nameserver }} --gateway {{ gateway }} --subnet-range {{ subnet_range }} providersub
- openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano - openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
- openstack keypair create --public-key /root/id_rsa.pub adminkey - openstack keypair create --public-key /root/id_rsa.pub adminkey

View File

@@ -1,9 +0,0 @@
$ANSIBLE_VAULT;1.1;AES256
39313161646365373665646331613930316437363735326262376531636166346138303139613138
3361353633616136303365646165643339333130393031380a373934636436626336326436306666
34316532333165346139633239313930326238333134633365666138326338386632373937343335
3262383863653136300a393464646365623763663063303936646462313764633736613562633661
62313961626165363761656363393538396461653936353932303137626435626161316239623338
65656132353136656430613462663466616432643761303366396461653066616162366666356533
39386261623861323861633739343237386266306264356436666430313531303238636235393665
31396533306261393835

View File

@@ -1,14 +0,0 @@
[global]
fsid = ef0b40a2-bc8c-4432-9cde-0ca7c82c8717
mon_initial_members = merlin-managementnode002
mon_host = 172.23.59.102
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
# Your network address
public network = 172.23.59.0/24
osd pool default size = 2
[client.volumes]
keyring = /etc/ceph/ceph.client.volumes.keyring

View File

@@ -1 +0,0 @@
d0db6ba7-a0c9-4da6-b0bc-aa7846325333

View File

@@ -6,11 +6,8 @@
name: secrets name: secrets
tags: vars tags: vars
#- command: uuidgen
# register: uuid
- set_fact: - set_fact:
docker_image: registry.webhosting.rug.nl/hpc/openstack-cinder-storage-merlin:latest docker_image: registry.webhosting.rug.nl/hpc/openstack-cinder-storage:latest
env_vars: > env_vars: >
-e "MY_IP={{ listen_ip | default(ansible_default_ipv4.address) }}" -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_HOST={{ listen_ip | default(hostvars[groups['cinder-storage'][0]]['ansible_default_ipv4']['address']) }}"
@@ -24,11 +21,6 @@
-e "RABBIT_HOST={{ listen_ip | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}" -e "RABBIT_HOST={{ listen_ip | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}"
-e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}" -e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}"
-e "RABBIT_USER=openstack" -e "RABBIT_USER=openstack"
-e "USE_CEPH={{ use_ceph }}"
-e "MON_INITIAL_MEMBERS={{ ceph_mon_initial_members }}"
-e "MON_HOST={{ ceph_mon_host }}"
-e "PUBLIC_NETWORK={{ ceph_public_network }}"
-e "OSD_POOL_DEFAULT_SIZE={{ ceph_osd_pool_default_size }}"
tags: vars tags: vars
- name: pull docker image - name: pull docker image
@@ -44,7 +36,6 @@
with_items: with_items:
- /srv/cinder-storage - /srv/cinder-storage
- /srv/cinder-storage/root - /srv/cinder-storage/root
- /srv/cinder-storage/etc/ceph
- name: initial setup - name: initial setup
command: > command: >
@@ -52,21 +43,10 @@
--privileged --privileged
{{ env_vars }} {{ env_vars }}
-v /srv/cinder-storage/root:/root \ -v /srv/cinder-storage/root:/root \
-v "{{ storage_volume }}":/dev/cinder_storage_volume \
{{ docker_image }} /etc/bootstrap.sh {{ docker_image }} /etc/bootstrap.sh
tags: bootstrap tags: bootstrap
- name: copy ceph-client configurationfile
copy:
src: files/ceph.conf
dest: /srv/cinder-storage/etc/ceph/ceph.conf
mode: 0644
- name: copy ceph-client-keyring
copy:
src: files/ceph.client.volumes.keyring
dest: /srv/cinder-storage/etc/ceph/ceph.client.volumes.keyring
mode: 0644
- name: install service file. - name: install service file.
template: template:
src: templates/cinder-storage.service src: templates/cinder-storage.service
@@ -76,12 +56,6 @@
group: root group: root
tags: systemd tags: systemd
#- name: set ceph client keyring
# copy:
# content: "{{ceph_cinder_client_keyring}}"
# dest: /srv/cinder-storage/etc/ceph
# when: use_ceph
- command: systemctl daemon-reload - command: systemctl daemon-reload
tags: systemd tags: systemd

View File

@@ -11,8 +11,11 @@ ExecStartPre=-/usr/bin/docker rm %n
ExecStart=/usr/bin/docker run --name %n \ ExecStart=/usr/bin/docker run --name %n \
--privileged \ --privileged \
{{ env_vars | replace('\n', '') }} \ {{ env_vars | replace('\n', '') }} \
-v "/dev/cinder-volumes/":/dev/cinder-volumes \
-v /srv/cinder-storage/root:/root \ -v /srv/cinder-storage/root:/root \
-v /etc/ceph:/etc/ceph \ -v "{{ storage_volume }}":/dev/cinder_storage_volume \
-v "/dev/lvm":/dev/lvm \
-v "/srv/cinder-storage/volumes/:/var/lib/cinder/volumes/" \
-p 8777:8776 \ -p 8777:8776 \
-p 3260:3260 \ -p 3260:3260 \
{{ docker_image }} {{ docker_image }}

View File

@@ -5,7 +5,7 @@
- name: Passwordless sudo for admins - name: Passwordless sudo for admins
lineinfile: dest=/etc/sudoers line="%admin ALL=(ALL:ALL) NOPASSWD:ALL" lineinfile: dest=/etc/sudoers line="%admin ALL=(ALL:ALL) NOPASSWD:ALL"
- include: users.yml - import_tasks: users.yml
- name: common | install packages - name: common | install packages
apt: pkg={{ item }} state=latest update_cache=yes apt: pkg={{ item }} state=latest update_cache=yes
@@ -26,7 +26,4 @@
owner: root owner: root
group: root group: root
- name: disable apparmor - import_tasks: docker.yml
apt: pkg=apparmor state=absent
- include: docker.yml

View File

@@ -1,2 +0,0 @@
[client.images]
key = AQDCpDNbJ3DqDBAAvUOUcxEoZNvQUfoaU5i8iQ==

View File

@@ -1,14 +0,0 @@
[global]
fsid = ef0b40a2-bc8c-4432-9cde-0ca7c82c8717
mon_initial_members = merlin-managementnode002
mon_host = 172.23.59.102
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
# Your network address
public network = 172.23.59.0/24
osd pool default size = 2
[client.images]
keyring = /etc/ceph/ceph.client.images.keyring

View File

@@ -6,7 +6,7 @@
name: secrets name: secrets
- set_fact: - set_fact:
docker_image: registry.webhosting.rug.nl/hpc/openstack-glance-merlin:latest docker_image: registry.webhosting.rug.nl/hpc/openstack-glance:latest
env_vars: > env_vars: >
-e "GLANCE_HOST={{ listen_ip | default(hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address']) }}" -e "GLANCE_HOST={{ listen_ip | default(hostvars[groups['glance-controller'][0]]['ansible_default_ipv4']['address']) }}"
-e "GLANCE_PASSWORD={{ secrets['GLANCE_PASSWORD'] }}" -e "GLANCE_PASSWORD={{ secrets['GLANCE_PASSWORD'] }}"
@@ -19,16 +19,11 @@
-e "RABBIT_HOST={{ listen_ip | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}" -e "RABBIT_HOST={{ listen_ip | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}"
-e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}" -e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}"
-e "RABBIT_USER=openstack" -e "RABBIT_USER=openstack"
-e "USE_CEPH={{ use_ceph }}"
-e "MON_INITIAL_MEMBERS={{ ceph_mon_initial_members }}"
-e "MON_HOST={{ ceph_mon_host }}"
-e "PUBLIC_NETWORK={{ ceph_public_network }}"
-e "OSD_POOL_DEFAULT_SIZE={{ ceph_osd_pool_default_size }}"
#- name: pull docker image - name: pull docker image
# docker_image: docker_image:
# name: "{{ docker_image }}" name: "{{ docker_image }}"
# tags: pull tags: pull
- name: Make build and persistent directories - name: Make build and persistent directories
file: file:
@@ -38,25 +33,6 @@
with_items: with_items:
- /srv/glance - /srv/glance
- /srv/glance/root - /srv/glance/root
- /srv/glance/etc/ceph
- name: copy ceph-client configurationfile
copy:
src: files/ceph.conf
dest: /srv/glance/etc/ceph/ceph.conf
mode: 0644
- name: copy ceph-client-keyring
copy:
src: files/ceph.client.images.keyring
dest: /srv/glance/etc/ceph/ceph.client.images.keyring
mode: 0644
#- name: set ceph client keyring
# copy:
# content: "{{ceph_images_client_keyring}}"
# dest: /srv/cinder-storage/etc/ceph/ceph.client.images.keyring
# when: use_ceph
- name: install service file. - name: install service file.
template: template:

View File

@@ -11,7 +11,7 @@ ExecStartPre=-/usr/bin/docker rm %n
ExecStart=/usr/bin/docker run --name %n \ ExecStart=/usr/bin/docker run --name %n \
{{ env_vars | replace('\n', '') }} \ {{ env_vars | replace('\n', '') }} \
-v /srv/glance/root:/root \ -v /srv/glance/root:/root \
-v /etc/ceph:/etc/ceph \ -v /var/lib/glance/images:/var/lib/glance/images \
-p 9292:9292 \ -p 9292:9292 \
{{ docker_image }} {{ docker_image }}

View File

@@ -45,7 +45,7 @@
MYSQL_ROOT_PASSWORD: "{{ secrets['MYSQL_ROOT_PASSWORD'] }}" MYSQL_ROOT_PASSWORD: "{{ secrets['MYSQL_ROOT_PASSWORD'] }}"
DB_HOST: "{{ listen_ip | default(hostvars[groups['databases'][0]]['ansible_default_ipv4']['address']) }}" DB_HOST: "{{ listen_ip | default(hostvars[groups['databases'][0]]['ansible_default_ipv4']['address']) }}"
register: result register: result
until: result is succeeded until: result|succeeded
# sometimes the initial connect fails. # sometimes the initial connect fails.
# Retry until it succeeds. # Retry until it succeeds.
retries: 7 retries: 7
@@ -94,8 +94,7 @@
retries: 7 retries: 7
delay: 3 delay: 3
- name: install openstack repo host key.
- name: install openstack repo key host.
command: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5EDB1B62EC4926EA command: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5EDB1B62EC4926EA
tags: openstackclient tags: openstackclient

View File

@@ -1,5 +1,3 @@
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_TENANT_NAME=admin export OS_TENANT_NAME=admin
export OS_USERNAME=admin export OS_USERNAME=admin
export OS_PASSWORD={{ hostvars[groups['keystone'][0]]['OS_PASSWORD'] }} export OS_PASSWORD={{ hostvars[groups['keystone'][0]]['OS_PASSWORD'] }}

View File

@@ -21,12 +21,14 @@
dest: /srv/mariadb/etc/mysql/conf.d/my.cnf dest: /srv/mariadb/etc/mysql/conf.d/my.cnf
mode: 660 mode: 660
- name: Set galara.cnf on node if we have at least three nodes. - name: >
Set galara.cnf on node if we have at least three nodes.
And we're part of the cluster.
template: template:
src: files/galera.cnf src: files/galera.cnf
dest: /srv/mariadb/etc/mysql/conf.d/galera.cnf dest: /srv/mariadb/etc/mysql/conf.d/galera.cnf
mode: 660 mode: 660
when: groups['databases'] | length >= 3 when: "'databases' in group_names and groups['databases'] | length >= 3"
# This mimics galera_new_cluster.sh # This mimics galera_new_cluster.sh
- name: Initialize a new cluster. - name: Initialize a new cluster.
@@ -47,7 +49,8 @@
name: mysql.service name: mysql.service
state: started state: started
when: groups['databases'] | length >= 3 and ansible_hostname == hostname_node0 when: "'databases' in group_names and groups['databases'] \
| length >= 3 and ansible_hostname == hostname_node0"
- name: install service file. - name: install service file.
block: block:
@@ -61,17 +64,22 @@
group: root group: root
- name: Give the master node some time to initialize the cluster. - name: Give the master node some time to initialize the cluster.
command: bash -c "sleep 60 && systemctl daemon-reload" command: bash -c "sleep 60"
when: "'databases' in group_names and groups['databases'] \
| length >= 3"
- name: Daemon reload (the implicit doesn't work)
command: bash -c "systemctl daemon-reload"
- name: make sure service is started - name: make sure service is started
systemd: systemd:
name: mysql.service name: mysql.service
state: started state: started
daemon_reload: yes
- name: start service at boot. - name: start service at boot.
command: systemctl reenable mysql.service command: systemctl reenable mysql.service
- name: Give the cluster some time to initialize replication. - name: Give the cluster some time to initialize replication.
command: bash -c "sleep 60 && systemctl daemon-reload" command: bash -c "sleep 60 && systemctl daemon-reload"
when: groups['databases'] | length >= 3 when: "'databases' in group_names and groups['databases'] | length >= 3"

View File

@@ -6,7 +6,7 @@
name: secrets name: secrets
- set_fact: - set_fact:
docker_image: "registry.webhosting.rug.nl/hpc/openstack-neutron-controller-merlin:latest" docker_image: "registry.webhosting.rug.nl/hpc/openstack-neutron-controller:latest"
- name: pull docker image - name: pull docker image
docker_image: docker_image:
@@ -29,7 +29,6 @@
-e "NOVA_CONTROLLER_HOST={{ listen_ip | default(hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address']) }}" -e "NOVA_CONTROLLER_HOST={{ listen_ip | default(hostvars[groups['nova-controller'][0]]['ansible_default_ipv4']['address']) }}"
-e "NOVA_PLACEMENT_PASSWORD={{ secrets['NOVA_PLACEMENT_PASSWORD'] }}" -e "NOVA_PLACEMENT_PASSWORD={{ secrets['NOVA_PLACEMENT_PASSWORD'] }}"
-e "NOVA_PLACEMENT_USER=placement" -e "NOVA_PLACEMENT_USER=placement"
-e "OVERLAY_IP={{ overlay_ip }}"
-e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}" -e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}"
-e "PHYSICAL_INTERFACE_MAPPINGS={{ physical_interface_mappings }}" -e "PHYSICAL_INTERFACE_MAPPINGS={{ physical_interface_mappings }}"
-e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}" -e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}"

View File

@@ -17,7 +17,6 @@ ExecStart=/usr/bin/docker run --name %n \
--privileged \ --privileged \
--network host \ --network host \
-v /lib/modules:/lib/modules \ -v /lib/modules:/lib/modules \
-v /var/run/netns:/var/run/netns \
{{ docker_image }} /etc/run.sh {{ docker_image }} /etc/run.sh
[Install] [Install]

View File

@@ -1,14 +0,0 @@
[global]
fsid = ef0b40a2-bc8c-4432-9cde-0ca7c82c8717
mon_initial_members = merlin-managementnode002
mon_host = 172.23.59.102
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
# Your network address
public network = 172.23.59.0/24
osd pool default size = 2
[client.compute]
keyring = /etc/ceph/ceph.client.compute.keyring

View File

@@ -1 +0,0 @@
b5044271-1918-4070-822c-f19ed14d7494

View File

@@ -7,7 +7,7 @@
tags: vars tags: vars
- set_fact: - set_fact:
docker_image: registry.webhosting.rug.nl/hpc/openstack-nova-compute-merlin:latest docker_image: registry.webhosting.rug.nl/hpc/openstack-nova-compute:latest
tags: vars tags: vars
- name: pull docker image - name: pull docker image
@@ -16,27 +16,6 @@
force: True force: True
tags: pull tags: pull
- name: Make build and persistent directories
file:
path: "{{ item }}"
state: directory
mode: 0777
with_items:
- /srv/nova-compute
- /srv/nova-compute/etc/ceph
- name: copy ceph-client configurationfile
copy:
src: files/ceph.conf
dest: /srv/nova-compute/etc/ceph/ceph.conf
mode: 0644
- name: copy ceph-client-keyring
copy:
src: files/ceph.client.compute.keyring
dest: /srv/nova-compute/etc/ceph/ceph.client.compute.keyring
mode: 0644
- name: install service file. - name: install service file.
template: template:
src: templates/nova-compute.service src: templates/nova-compute.service
@@ -46,12 +25,6 @@
group: root group: root
tags: systemd tags: systemd
#- name: set ceph client keyring
# copy:
# content: "{{ceph_compute_client_keyring}}"
# dest: /srv/nova-compute/etc/ceph
# when: use_ceph
- command: systemctl daemon-reload - command: systemctl daemon-reload
tags: systemd tags: systemd
@@ -74,8 +47,3 @@
- name: let nova controler discover new host - name: let nova controler discover new host
shell: "sleep 10 && docker exec -i nova-controller.service nova-manage cell_v2 discover_hosts" shell: "sleep 10 && docker exec -i nova-controller.service nova-manage cell_v2 discover_hosts"
delegate_to: "{{ hostvars[groups['nova-controller'][0]]['ansible_hostname'] }}" delegate_to: "{{ hostvars[groups['nova-controller'][0]]['ansible_hostname'] }}"
register: result
until: result is succeeded
retries: 7
delay: 3
ignore_errors: yes

View File

@@ -26,27 +26,19 @@ ExecStart=/usr/bin/docker run --name %n \
-e "NOVA_PLACEMENT_PASSWORD={{ secrets['NOVA_PLACEMENT_PASSWORD'] }}" \ -e "NOVA_PLACEMENT_PASSWORD={{ secrets['NOVA_PLACEMENT_PASSWORD'] }}" \
-e "NOVA_PLACEMENT_USER=placement" \ -e "NOVA_PLACEMENT_USER=placement" \
-e "NOVA_USER=nova" \ -e "NOVA_USER=nova" \
-e "OVERLAY_IP={{ overlay_ip }}" \
-e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}" \ -e "OS_PASSWORD={{ secrets['OS_PASSWORD'] }}" \
-e "PHYSICAL_INTERFACE_MAPPINGS={{ physical_interface_mappings }}" \ -e "PHYSICAL_INTERFACE_MAPPINGS={{ physical_interface_mappings }}" \
-e "RABBIT_HOST={{ hostvars[groups['rabbitmq'][0]]['listen_ip'] | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}" \ -e "RABBIT_HOST={{ hostvars[groups['rabbitmq'][0]]['listen_ip'] | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}" \
-e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}" \ -e "RABBIT_PASSWORD={{ secrets['RABBIT_PASSWORD'] }}" \
-e "RABBIT_USER=openstack" \ -e "RABBIT_USER=openstack" \
-e "USE_CEPH={{ use_ceph }}" \
-e "MON_INITIAL_MEMBERS={{ ceph_mon_initial_members }}" \
-e "MON_HOST={{ ceph_mon_host }}" \
-e "PUBLIC_NETWORK={{ ceph_public_network }}" \
-e "OSD_POOL_DEFAULT_SIZE={{ ceph_osd_pool_default_size }}" \
--add-host=keystone:{{ hostvars[groups['keystone'][0]]['listen_ip'] | default(hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address']) }} \ --add-host=keystone:{{ hostvars[groups['keystone'][0]]['listen_ip'] | default(hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address']) }} \
--add-host=mariadb:{{ hostvars[groups['databases'][0]]['listen_ip'] | default(hostvars[groups['databases'][0]]['ansible_default_ipv4']['address']) }} \ --add-host=mariadb:{{ hostvars[groups['databases'][0]]['listen_ip'] | default(hostvars[groups['databases'][0]]['ansible_default_ipv4']['address']) }} \
--privileged \ --privileged \
-v /dev:/dev \ -v /dev:/dev \
-v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \ -v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \
-v /var/lib/nova/instances:/var/lib/nova/instances \ -v /var/lib/nova/instances:/var/lib/nova/instances \
-v /var/run/netns:/var/run/netns \
-v /lib/modules:/lib/modules \ -v /lib/modules:/lib/modules \
-v /etc/machine-id:/etc/machine-id \ -v /etc/machine-id:/etc/machine-id \
-v /etc/ceph:/etc/ceph \
--network host \ --network host \
{{ docker_image }} /etc/run.sh {{ docker_image }} /etc/run.sh

View File

@@ -1,35 +1,32 @@
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
35313437313530623333636561373631393862663463323739353630313161303566353732633636 32313865346461323861313234623330633830663561353636396161643566353733393931303232
3335626664346130646435613932326166366635326138640a363165366339393130306234633061 3134353364393034626564333866383065633162383561390a656463303464616434303435303037
62646664313036616639643565396639303064323461633839633833393664373864653262393532 63313232373630616136626464373464646535353030396136656361343162666165366566383737
3734333431353530650a333630343930313038613164303038306264306238333632363862313431 6133326539393432390a386162393639636137326532393939633665326637373461663766656565
35303131623461303863646135313463363032396439623536353433386138613565383931333266 36636661653939373134313165383261353832373362613533366431626330313831643836363932
38636632363334336534336434303763616432366631343666343437316532313466396661656663 38623937663335646134323130636539333335636265313564323032623065393031343235633832
62316362336631663439656134623034626532653039323461373239376461636539393739346435 33336138653336633932383133366566656464356331306265663662356166613135663234326434
32623066656439326561663031303430316138353631366163373630343962666263663162636337 64343765366439303766613062363830346238376435366138323662366463353634623937376663
61393262393063626639623536656535623262386439633034393261323762633431363937613735 39313263613764623533323562333932656564346462333961663538353366313065343263383431
31373464646566646435323835393766396537333532623766333638626534336436373434633136 39643734353632336134663965343062373933656461393264323938303261316563313962343837
63653538326232356436303331636435316633363030386562663461353338663630613162313436 66623562333031646633643734383439386130653033343962633930613031313433633033383561
62333337666535353332366330326336313235353463373666343633666465616465383435333037 65366230663263346661343339636537336332323266623230646534323563373934356332663136
66306334313231356439343730386234396638633566653733393430636232353631346334653964 30626231623534616562323033333437353239306538653835623931363164383536336562336136
31663161633961383935613663336233666334393563643539373833633361323532656639656165 30666265366536313436646535383632626137613831633132666666653830383566323532306332
38396134346365653835383463333535393365306234656535623761343732386665396335376362 34353534336331653330663137323936303337306134333036633932363664643864333534316438
31343061313331373762353738333962343366663730303436353530653533613839363437643539 31623062303137376637353061643838383831663561663436663130663064323665316261316531
33646133626235613461383063363634653565363134343163343939633238636239343462656135 32616533333165636130623334373130316339326538343330646366383933353137623631323530
61356161306665383235393030653565646634656536396662346462313636326266633235643236 39653437343432383161323661643931346664663265326664336461373033646563666333353661
63636434646139386337356165613934323564316136373664643237376633313665653534393035 61633865373764346131623131346266373331626336663735303439376230333537386562303939
34363438303633323661313737363738346639393835336462363666643934383030373132363464 65363139346564653464663633326639323930333464376136353064393039373535613231623138
36326466336239666366363966313862616135623736323332393734313364353661653063303831 61373434323065646238356436373730333939613965666237616265653033333230353466316266
35366533333935343938653566326633353639323937616661316234353265383832346336343861 30383939376335656632626232663061623332636337646234653565363561353334643462376666
66623133316262623731353861333533623662663034376539613262653539353137643062306562 30326438303333336265306463313137656334313235643434616238333564373761333235633639
31663035653731393131333964383162653237373562666635356666646564373366303661383163 66346161316130633463623435646639366136386335386139613230653064663230366265633036
63346130333465326465656537336637323531363836643838313432643165663465326664656563 33613132633035393337653436613031383765616638323663363866393165613030306637393134
63323734663461346532353736343164323233343539663539343831383332336238643830663635 38333734373939626364343533306662393463646264666161346434363832623239643864303431
37306463373137386663363538376563653763383663326134663733366262363533343366323438 39383931333139633338663761646335613935636239636439383333313531633364653439323036
35613638316266393337363734313564353464316135353634323366303163376465656266656338 35373639363164386666366335313934336231333261623763633133393562656237313761356631
36313563303063613433653064363037636461636135373564653630626338646561663666353137 39663234653339313466326534333435306662316461333035623339353435383137383735373733
64353131643435616334323733663538663063323437323831353532653730313538303538653565 32373535303338646266346539386364356233616631316661633037346665353762353138376538
35313363323466663531396634323132316538616361343963393465323033643830653430633832 386535333439313233663464353534376535
30306236616233353135353965373838396435323366653732353736363263643062636536626263
63373231396230656464393764333133653436656133653161663131333565373832303462663639
6563303036633864313533363164323964643662613537313136

View File

@@ -1,13 +0,0 @@
---
- hosts: nova-compute
become: true
tasks:
- name: include secrets
include_vars:
file: secrets.yml
name: secrets
- command: virsh secret-define --file ceph.xml
- command: >
virsh secret-set-value --secret d0db6ba7-a0c9-4da6-b0bc-aa7846325333
--base64 {{ secrets['ceph_client_volumes_key'] }}

View File

@@ -10,5 +10,3 @@
- subnet_range: 172.23.128.0/24 - subnet_range: 172.23.128.0/24
- rsa_pub: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStPUPXkcu81onUm/le54JCu174yXJJDsthDr96Mv8irBVBWuy5FxnaASuDpmC4QE4s0UAIg1iq/SWrr8qdBQ4OVuYFiW0S7ZJvcoKr/40Wh+T5MeltGQfmkDp6kBsfaMSo6M4tF1c8i+XgOgxb4fxHYb8mFhseztRLx6McxJJJLB0nu+T12WQ01nl0XtwD+3EsZWfxRH0KA59VHZSe3Anc5z+Fm7WU+1Vzy6/pkiIhVReI1L6VVhZsIdSu3fQK6fHQcujtfuw6RKEpisZQqnxMUviWQ98yeQXHk6Nx840WCh3vvKveEAoC4Y/UEZa1TMe6PczfUaLjaidUkpulJsP egon@egon-pc - rsa_pub: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStPUPXkcu81onUm/le54JCu174yXJJDsthDr96Mv8irBVBWuy5FxnaASuDpmC4QE4s0UAIg1iq/SWrr8qdBQ4OVuYFiW0S7ZJvcoKr/40Wh+T5MeltGQfmkDp6kBsfaMSo6M4tF1c8i+XgOgxb4fxHYb8mFhseztRLx6McxJJJLB0nu+T12WQ01nl0XtwD+3EsZWfxRH0KA59VHZSe3Anc5z+Fm7WU+1Vzy6/pkiIhVReI1L6VVhZsIdSu3fQK6fHQcujtfuw6RKEpisZQqnxMUviWQ98yeQXHk6Nx840WCh3vvKveEAoC4Y/UEZa1TMe6PczfUaLjaidUkpulJsP egon@egon-pc
- use_ceph: True

View File

@@ -1,15 +1,15 @@
--- ---
- include: common.yml - import_playbook: common.yml
- include: rabbitmq.yml - import_playbook: rabbitmq.yml
- include: memcached.yml - import_playbook: memcached.yml
- include: mariadb.yml - import_playbook: mariadb.yml
- include: keystone.yml - import_playbook: keystone.yml
- include: glance-controller.yml - import_playbook: glance-controller.yml
- include: nova-controller.yml - import_playbook: nova-controller.yml
- include: neutron-controller.yml - import_playbook: neutron-controller.yml
- include: cinder-controller.yml - import_playbook: cinder-controller.yml
- include: cinder-storage.yml - import_playbook: cinder-storage.yml
- include: nova-compute.yml - import_playbook: nova-compute.yml
- include: horizon.yml - import_playbook: horizon.yml
- include: heat.yml - import_playbook: heat.yml
- include: post-install.yml - import_playbook: post-install.yml

View File

@@ -1,18 +0,0 @@
---
- hosts: all
name: Dummy to gather facts
become: true
tasks:
- name: install openstack repo key host.
command: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5EDB1B62EC4926EA
tags: openstackclient
- name: install openstack repo on host.
apt_repository:
repo: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/ocata main"
filename: ocata
tags: openstackclient
- apt:
update_cache: yes