-
Notifications
You must be signed in to change notification settings - Fork 2
/
pre.yaml
103 lines (92 loc) · 2.62 KB
/
pre.yaml
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
---
- hosts: primary
tasks:
- name: Gather needed facts
setup:
gather_subset: "!min,user_dir,distribution"
when:
- ansible_user_dir is not defined
- ansible_distribution is not defined
- name: Check if pip is installed
shell: command -v pip > /dev/null 2>&1
ignore_errors: true
changed_when: false
register: pip_exists
- when: pip_exists.rc != 0
name: Install pip
block:
- when: ansible_distribution == "CentOS"
name: Install EPEL
become: true
package:
name: epel-release
- name: Install pip
become: true
package:
name:
- python-pip
- name: Install package dependencies
become: true
package:
name:
- "{{ docker_package | default('docker-1.13.1') }}"
- "{{ netaddr_package | default('python-netaddr') }}"
- name: Install python dependencies
pip:
name:
- ansible==2.7.5
- openstacksdk==0.13.0
- docker==3.6.0
- docker-compose==1.23.2
extra_args: --user
- name: Find out docker group name
shell: grep docker /etc/group | cut -d":" -f1 | head -1
register: docker_group
changed_when: false
- when: not docker_group.stdout
block:
- name: Create docker group
become: true
group:
name: docker
state: present
- name: Storing new created docker group
set_fact:
docker_group:
stdout: docker
- name: Check if user is in docker group
command: "groups {{ ansible_user }}"
register: user_groups
changed_when: false
- when: "docker_group.stdout not in user_groups.stdout"
block:
- name: Add user to docker group
become: true
user:
name: '{{ ansible_user }}'
groups: '{{ docker_group.stdout }}'
append: true
register: groupadd
- name: reset ssh connection to allow user changes to affect
meta: reset_connection
- name: Create docker configuration file
become: true
copy:
content: |
{
"group": "{{ docker_group.stdout }}",
}
dest: /etc/docker/daemon.json
register: docker_config
- name: Reload docker if config was changed
become: true
service:
name: docker
state: reloaded
when: docker_config is changed
- name: Start and enable docker
become: true
service:
name: docker
state: started
enabled: true