-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathDeployDocker.yml
58 lines (56 loc) · 2.28 KB
/
DeployDocker.yml
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
---
- hosts: 127.0.0.1
connection: local
become: true
become_method: sudo
tasks:
- name: Create repository file for Docker
file: path=/etc/apt/sources.list.d/docker.list state=touch
- name: get APT keys
apt_key: keyserver=hkp://p80.pool.sks-keyservers.net:80 id=58118E89F3A912897C070ADBF76221572C52609D
- name: Add Docker repositories to APT
lineinfile: dest=/etc/apt/sources.list.d/docker.list line='deb https://apt.dockerproject.org/repo ubuntu-xenial main'
register: result
- name: Apt upate for docker repositories
apt: update_cache=yes
when: result|changed
- name: Install docker engine
apt: name=docker-engine state=present install_recommends=yes
- name: Start Docker service
service: name=docker state=started
- name: determine swarm status
shell: "docker info | egrep '^Swarm: ' | cut -d ' ' -f2"
register: swarm_status
- name: initialize swarm cluster
shell: docker swarm init --advertise-addr 192.168.33.10:2377
when: "'active' not in swarm_status.stdout_lines"
- name: retrieve swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- name: Tag as docker manager
shell: docker node update --role manager master
when: "'active' not in swarm_status.stdout_lines"
- hosts: nodes
become: true
become_method: sudo
vars:
token: "{{ hostvars['localhost']['swarm_worker_token']['stdout'] }}"
tasks:
- name: get APT keys
apt_key: keyserver=hkp://p80.pool.sks-keyservers.net:80 id=58118E89F3A912897C070ADBF76221572C52609D
- name: Create repository file for Docker
file: path=/etc/apt/sources.list.d/docker.list state=touch
- name: Add Docker repositories to APT
lineinfile: dest=/etc/apt/sources.list.d/docker.list line='deb https://apt.dockerproject.org/repo ubuntu-xenial main'
register: result
- name: Apt upate for docker repositories
apt: update_cache=yes
when: result|changed
- name: Install docker engine
apt: name=docker-engine state=present install_recommends=yes
- name: determine swarm status
shell: "docker info | egrep '^Swarm: ' | cut -d ' ' -f2"
register: swarm_status
- name: join worker nodes to cluster
shell: docker swarm join --token={{ token }} 192.168.33.10:2377
when: "'active' not in swarm_status.stdout_lines"