blob: 911a2844e7c150433797dd717c36132ae97f187d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
---
- include_vars: "{{ item }}"
with_first_found:
- "{{ compass_dists_dir }}/build-{{ ansible_architecture }}.yaml"
- "{{ compass_dists_dir }}/build.yaml"
- set_fact:
image_name: "{{ item.name | regex_replace('-', '_') }}"
image_repo: "{{ item.url }}"
with_items: "{{ packages }}"
when: item.name in compose_images
register: compass_images
- name: generate compose_images.yml
copy:
dest: "{{ compass_dists_dir }}/compose_images.yml"
content: |
{% set image_dict = {} %}
{% for item in compass_images.results %}
{% if "ansible_facts" in item %}
{% set facts = item.ansible_facts %}
{% set image_name = facts.image_name %}
{% if "compass_tasks" in image_name %}
{% set image_name = "compass_tasks" %}
{% endif %}
{% set _ = image_dict.update({image_name: facts.image_repo}) %}
{% endif %}
{% endfor %}
{% for key in image_dict %}
{{ key }}: {{ image_dict[key] }}
{% endfor %}
- include_vars: "{{ compass_dists_dir }}/compose_images.yml"
- name: get jumphost ip
shell: |
external_nic=`ip route |grep '^default'|awk '{print $5F}'|sed -n '1p'`
host_ip=`ifconfig $external_nic | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
echo $host_ip
register: external_ip
- name: fix name.service
shell: |
if [ ! -f "/etc/apparmor.d/disable/usr.sbin.named" ]; then
ln -s /etc/apparmor.d/usr.sbin.named /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/usr.sbin.named
fi
- name: render docker-compose file
template:
src: docker-compose.yml.j2
dest: "{{ docker_compose_dir }}/docker-compose.yml"
- name: docker-compose down
shell: docker-compose down
args:
chdir: "{{ docker_compose_dir }}"
- name: load docker images
shell: |
images=$(ls "{{ compass_dists_dir }}" | grep .*.tar)
for image in $images
do
docker load -i "{{ compass_dists_dir }}/$image"
done
- name: copy files
shell:
cp -rf "{{ item }}" "{{ docker_compose_dir }}"
with_items:
- "{{ compass_dir }}/deploy/adapters/ansible"
- "{{ compass_dir }}/deploy/compass_conf"
- "{{ compass_dir }}/deploy/adapters/cobbler"
- name: retrieve plugins list
command: "ls {{ compass_dir }}/plugins/"
register: plugin_list
- name: copy plugins roles
copy:
src: "{{ compass_dir }}/plugins/{{ item }}/roles/"
dest: "{{ docker_compose_dir }}/ansible/roles/"
with_items: "{{ plugin_list.stdout_lines }}"
when: item != 'template'
- name: chmod directory
file:
dest: "{{ item }}"
mode: 0755
with_items:
- "{{ compass_dir }}/deploy/adapters/ansible"
- "{{ compass_dir }}/deploy/compass_conf"
- "{{ compass_dir }}/deploy/adapters/cobbler"
- name: copy ansible scripts into ansible folder
shell: |
for i in `ls "{{ docker_compose_dir }}/ansible" | grep "openstack_"`; do
cp -rf "{{ docker_compose_dir }}"/ansible/openstack/* \
"{{ docker_compose_dir }}"/ansible/$i
done
- name: create run dir
file:
path: "{{ docker_compose_dir }}/ansible/run"
state: directory
- name: render cobbler
template:
src: "{{ item }}.j2"
dest: "{{ docker_compose_dir }}/compass_conf/os_installer/{{ item }}"
with_items:
- cobbler.conf
- name: docker-compose up
shell: docker-compose up -d
args:
chdir: "{{ docker_compose_dir }}"
- name: create compass db tables
shell: |
sleep 3; \
docker exec compass-deck bash -c "/opt/compass/bin/manage_db.py createdb"
register: result1
until: result1.rc == 0
retries: 10
delay: 2
tags:
- redploy
- name: add ansible callback
shell: |
docker cp "{{ item }}" \
compass-deck:/root/compass-deck/bin/ansible_callbacks
docker cp "{{ item }}" \
compass-tasks:/opt/ansible_callbacks
with_items:
- "{{ compass_dir }}/deploy/status_callback.py"
- "{{ compass_dir }}/deploy/playbook_done.py"
- name: rm ansible run
shell: |
docker exec compass-tasks bash -c "rm -rf /var/ansible/run/*"
- name: start httpd service
shell: |
docker exec compass-deck bash -c "systemctl start httpd"
|