-
Notifications
You must be signed in to change notification settings - Fork 165
/
docker-host.yml
76 lines (62 loc) · 2.41 KB
/
docker-host.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
---
- name: docker | register {{ server_user }} GID
shell: "grep ^{{ server_user }} /etc/group | awk -F: '{print $3}'"
register: server_user_gid
- name: docker | register {{ server_user }} UID
shell: "grep ^{{ server_user }} /etc/passwd | awk -F: '{print $4}'"
register: server_user_uid
- name: docker | fetch samba ccache HTML page
local_action: shell curl -sL https://www.samba.org/ftp/ccache/ | sed -n -e 's/.*"ccache-\([0-9.]*\).tar.gz".*/\1/p' | tail -1
register: ccache_html_content
- name: docker | extract ccache latest version
set_fact:
ccache_latest: "{{ ccache_html_content.stdout }}"
- name: docker | check if docker exists
shell: which docker
register: docker_exists
ignore_errors: yes
- name: docker | install docker from docker.com
when: "docker_exists.stdout == ''"
raw: curl -fsSL get.docker.com | bash -
- name: docker | copy docker-exec script
template:
src: "{{ role_path }}/templates/docker-node-exec.sh.j2"
dest: "/usr/local/bin/docker-node-exec.sh"
mode: 0755
- name: docker | give {{ server_user }} sudoers access to docker-exec script
lineinfile:
line: "{{ server_user }} ALL=(ALL) NOPASSWD: /usr/local/bin/docker-node-exec.sh"
dest: "/etc/sudoers"
regexp: docker-node-exec.sh$
- name: docker | make build directory
file:
path: /root/docker-container-{{ item.name }}
state: directory
with_items: "{{ docker_containers }}"
- name: docker | generate Dockerfile
template:
src: "{{ role_path }}/templates/{{ item.template }}"
dest: /root/docker-container-{{ item.name }}/Dockerfile
mode: "0644"
with_items: "{{ docker_containers }}"
- name: docker | build image
command: docker build -t node-ci:{{ item.name }} /root/docker-container-{{ item.name }}/
with_items: "{{ docker_containers }}"
- name: docker | generate and copy init script
template:
src: "{{ role_path }}/templates/docker-jenkins.service.j2"
dest: "/lib/systemd/system/docker-jenkins-{{ item.name }}.service"
with_items: "{{ docker_containers }}"
- name: docker | stop containers
service:
name: "docker-jenkins-{{ item.name }}"
state: stopped
failed_when: "stop_containers is failed and 'not loaded' not in stop_containers.msg"
register: stop_containers
with_items: "{{ docker_containers }}"
- name: docker | start containers
service:
name: "docker-jenkins-{{ item.name }}"
state: started
enabled: yes
with_items: "{{ docker_containers }}"