forked from easzlab/kubeasz
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.yml
108 lines (91 loc) · 3.54 KB
/
main.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
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
- name: 获取是否已经安装containerd
shell: 'systemctl status containerd|grep Active || echo "NOT FOUND"'
register: containerd_status
- name: fail info1
fail: msg="Containerd already installed!"
when: '"running" in containerd_status.stdout'
- name: 获取是否运行名为'kubeasz'的容器
shell: 'systemctl status docker|grep Active && docker ps|grep kubeasz || echo "NOT FOUND"'
register: install_info
tags: upgrade_docker, download_docker
# 18.09.x 版本二进制名字有变化,需要做判断
- name: 获取docker版本信息
shell: "{{ base_dir }}/bin/dockerd --version|cut -d' ' -f3"
register: docker_ver
connection: local
run_once: true
tags: upgrade_docker, download_docker
- name: 转换docker版本信息为浮点数
set_fact:
DOCKER_VER: "{{ docker_ver.stdout.split('.')[0]|int + docker_ver.stdout.split('.')[1]|int/100 }}"
tags: upgrade_docker, download_docker
- name: debug info
debug: var="DOCKER_VER"
tags: upgrade_docker, download_docker
- block:
- name: 准备docker相关目录
file: name={{ item }} state=directory
with_items:
- "{{ bin_dir }}"
- /etc/docker
- name: 下载 docker 二进制文件
copy: src={{ base_dir }}/bin/{{ item }} dest={{ bin_dir }}/{{ item }} mode=0755
with_items:
- docker-containerd
- docker-containerd-shim
- docker-init
- docker-runc
- docker
- docker-containerd-ctr
- dockerd
- docker-proxy
tags: upgrade_docker, download_docker
when: "DOCKER_VER|float < 18.09"
- name: 下载 docker 二进制文件(>= 18.09.x)
copy: src={{ base_dir }}/bin/{{ item }} dest={{ bin_dir }}/{{ item }} mode=0755
with_items:
- containerd
- containerd-shim
- docker-init
- runc
- docker
- ctr
- dockerd
- docker-proxy
tags: upgrade_docker, download_docker
when: "DOCKER_VER|float >= 18.09"
- name: docker命令自动补全
copy: src=docker dest=/etc/bash_completion.d/docker mode=0644
- name: docker国内镜像加速
template: src=daemon.json.j2 dest=/etc/docker/daemon.json
- name: flush-iptables
shell: "iptables -P INPUT ACCEPT \
&& iptables -F && iptables -X \
&& iptables -F -t nat && iptables -X -t nat \
&& iptables -F -t raw && iptables -X -t raw \
&& iptables -F -t mangle && iptables -X -t mangle"
- name: 创建docker的systemd unit文件
template: src=docker.service.j2 dest=/etc/systemd/system/docker.service
tags: upgrade_docker, download_docker
- name: 开机启用docker 服务
shell: systemctl enable docker
ignore_errors: true
- name: 开启docker 服务
shell: systemctl daemon-reload && systemctl restart docker
tags: upgrade_docker
## 可选 ------安装docker查询镜像 tag的小工具----
# 先要安装轻量JSON处理程序‘jq’,已在 prepare 节点安装
- name: 下载 docker-tag
copy: src=docker-tag dest={{ bin_dir }}/docker-tag mode=0755
- name: 轮询等待docker服务运行
shell: "systemctl status docker.service|grep Active"
register: docker_status
until: '"running" in docker_status.stdout'
retries: 8
delay: 2
tags: upgrade_docker
# 配置 docker 命令软链接,方便单独安装 docker
- name: 配置 docker 命令软链接
file: src={{ bin_dir }}/docker dest=/usr/bin/docker state=link
ignore_errors: true
when: "'kubeasz' not in install_info.stdout"