Skip to content

Commit 05d5288

Browse files
committed
安装流程重构之优化prepare/etcd/containerd/docker等阶段
1 parent 8712819 commit 05d5288

File tree

5 files changed

+27
-28
lines changed

5 files changed

+27
-28
lines changed

03.containerd.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
- kube-master
44
- kube-node
55
roles:
6-
- containerd
6+
- { role: containerd, when: "CONTAINER_RUNTIME == 'containerd'" }

03.docker.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
- kube-master
44
- kube-node
55
roles:
6-
- docker
6+
- { role: docker, when: "CONTAINER_RUNTIME == 'docker'" }

roles/containerd/tasks/main.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
- name: 安装 libseccomp2
88
package: name=libseccomp2 state=present
9-
when: ansible_distribution == "Ubuntu" or ansible_distribution == "Debian"
9+
when: 'ansible_distribution in ["Ubuntu","Debian"]'
1010

1111
- name: 安装 libseccomp
1212
package: name=libseccomp state=present
13-
when: ansible_distribution == "CentOS" or ansible_distribution == "RedHat" or ansible_distribution == "Amazon"
13+
when: 'ansible_distribution in ["CentOS","RedHat","Amazon"]'
1414

1515
- name: 加载内核模块 overlay
1616
modprobe: name=overlay state=present

roles/deploy/tasks/main.yml

+22-22
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
- name: prepare some dirs
22
file: name={{ item }} state=directory
33
with_items:
4-
- "{{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl"
5-
- "{{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/yaml"
4+
- "{{ base_dir }}/.cluster/ssl"
5+
- "{{ base_dir }}/.cluster/yaml"
66

77
- name: 本地设置 bin 目录权限
88
file: path={{ base_dir }}/bin state=directory mode=0755 recurse=yes
99

1010
# 注册变量p,根据p的stat信息判断是否已经生成过ca证书,如果没有,下一步生成证书
1111
# 如果已经有ca证书,为了保证整个安装的幂等性,跳过证书生成的步骤
1212
- name: 读取ca证书stat信息
13-
stat: path="{{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/ca.pem"
13+
stat: path="{{ base_dir }}/.cluster/ssl/ca.pem"
1414
register: p
1515

1616
- name: 准备CA配置文件和签名请求
17-
template: src={{ item }}.j2 dest={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/{{ item }}
17+
template: src={{ item }}.j2 dest={{ base_dir }}/.cluster/ssl/{{ item }}
1818
with_items:
1919
- "ca-config.json"
2020
- "ca-csr.json"
2121
when: p.stat.isreg is not defined
2222

2323
- name: 生成 CA 证书和私钥
2424
when: p.stat.isreg is not defined
25-
shell: "cd {{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl && \
25+
shell: "cd {{ base_dir }}/.cluster/ssl && \
2626
{{ base_dir }}/bin/cfssl gencert -initca ca-csr.json | {{ base_dir }}/bin/cfssljson -bare ca"
2727

2828
#----------- 创建kubectl kubeconfig文件: /root/.kube/config
@@ -31,34 +31,34 @@
3131
file: path=/root/.kube state=absent
3232

3333
- name: 下载 group:read rbac 文件
34-
copy: src=read-group-rbac.yaml dest={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/yaml/read-group-rbac.yaml
34+
copy: src=read-group-rbac.yaml dest={{ base_dir }}/.cluster/yaml/read-group-rbac.yaml
3535
when: USER_NAME == "read"
3636

3737
- name: 创建group:read rbac 绑定
38-
shell: "{{ base_dir }}/bin/kubectl apply -f {{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/yaml/read-group-rbac.yaml"
38+
shell: "{{ base_dir }}/bin/kubectl apply -f {{ base_dir }}/.cluster/yaml/read-group-rbac.yaml"
3939
when: USER_NAME == "read"
4040

4141
- name: 准备kubectl使用的{{ USER_NAME }}证书签名请求
42-
template: src={{ USER_NAME }}-csr.json.j2 dest={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/{{ USER_NAME }}-csr.json
42+
template: src={{ USER_NAME }}-csr.json.j2 dest={{ base_dir }}/.cluster/ssl/{{ USER_NAME }}-csr.json
4343

4444
- name: 创建{{ USER_NAME }}证书与私钥
45-
shell: "cd {{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl && {{ base_dir }}/bin/cfssl gencert \
45+
shell: "cd {{ base_dir }}/.cluster/ssl && {{ base_dir }}/bin/cfssl gencert \
4646
-ca=ca.pem \
4747
-ca-key=ca-key.pem \
4848
-config=ca-config.json \
4949
-profile=kubernetes {{ USER_NAME }}-csr.json | {{ base_dir }}/bin/cfssljson -bare {{ USER_NAME }}"
5050

5151
- name: 设置集群参数
5252
shell: "{{ base_dir }}/bin/kubectl config set-cluster {{ CLUSTER_NAME }} \
53-
--certificate-authority={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/ca.pem \
53+
--certificate-authority={{ base_dir }}/.cluster/ssl/ca.pem \
5454
--embed-certs=true \
5555
--server={{ KUBE_APISERVER }}"
5656

5757
- name: 设置客户端认证参数
5858
shell: "{{ base_dir }}/bin/kubectl config set-credentials {{ USER_NAME }} \
59-
--client-certificate={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/{{ USER_NAME }}.pem \
59+
--client-certificate={{ base_dir }}/.cluster/ssl/{{ USER_NAME }}.pem \
6060
--embed-certs=true \
61-
--client-key={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/{{ USER_NAME }}-key.pem"
61+
--client-key={{ base_dir }}/.cluster/ssl/{{ USER_NAME }}-key.pem"
6262

6363
- name: 设置上下文参数
6464
shell: "{{ base_dir }}/bin/kubectl config set-context {{ CONTEXT_NAME }} \
@@ -68,37 +68,37 @@
6868
shell: "{{ base_dir }}/bin/kubectl config use-context {{ CONTEXT_NAME }}"
6969
tags: create_kctl_cfg
7070

71-
#------------创建kube-proxy.kubeconfig配置文件: /root/kube-proxy.kubeconfig
71+
#------------创建kube-proxy配置文件: kube-proxy.kubeconfig
7272
- name: 准备kube-proxy 证书签名请求
73-
template: src=kube-proxy-csr.json.j2 dest={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/kube-proxy-csr.json
73+
template: src=kube-proxy-csr.json.j2 dest={{ base_dir }}/.cluster/ssl/kube-proxy-csr.json
7474

7575
- name: 创建 kube-proxy证书与私钥
76-
shell: "cd {{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl && {{ base_dir }}/bin/cfssl gencert \
76+
shell: "cd {{ base_dir }}/.cluster/ssl && {{ base_dir }}/bin/cfssl gencert \
7777
-ca=ca.pem \
7878
-ca-key=ca-key.pem \
7979
-config=ca-config.json \
8080
-profile=kubernetes kube-proxy-csr.json | {{ base_dir }}/bin/cfssljson -bare kube-proxy"
8181

8282
- name: 设置集群参数
8383
shell: "{{ base_dir }}/bin/kubectl config set-cluster kubernetes \
84-
--certificate-authority={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/ca.pem \
84+
--certificate-authority={{ base_dir }}/.cluster/ssl/ca.pem \
8585
--embed-certs=true \
8686
--server={{ KUBE_APISERVER }} \
87-
--kubeconfig={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/kube-proxy.kubeconfig"
87+
--kubeconfig={{ base_dir }}/.cluster/kube-proxy.kubeconfig"
8888
- name: 设置客户端认证参数
8989
shell: "{{ base_dir }}/bin/kubectl config set-credentials kube-proxy \
90-
--client-certificate={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/kube-proxy.pem \
91-
--client-key={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/kube-proxy-key.pem \
90+
--client-certificate={{ base_dir }}/.cluster/ssl/kube-proxy.pem \
91+
--client-key={{ base_dir }}/.cluster/ssl/kube-proxy-key.pem \
9292
--embed-certs=true \
93-
--kubeconfig={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/kube-proxy.kubeconfig"
93+
--kubeconfig={{ base_dir }}/.cluster/kube-proxy.kubeconfig"
9494
- name: 设置上下文参数
9595
shell: "{{ base_dir }}/bin/kubectl config set-context default \
9696
--cluster=kubernetes \
9797
--user=kube-proxy \
98-
--kubeconfig={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/kube-proxy.kubeconfig"
98+
--kubeconfig={{ base_dir }}/.cluster/kube-proxy.kubeconfig"
9999
- name: 选择默认上下文
100100
shell: "{{ base_dir }}/bin/kubectl config use-context default \
101-
--kubeconfig={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/kube-proxy.kubeconfig"
101+
--kubeconfig={{ base_dir }}/.cluster/kube-proxy.kubeconfig"
102102

103103
- name: 本地创建 easzctl 工具的软连接
104104
file: src={{ base_dir }}/tools/easzctl dest=/usr/bin/easzctl state=link

roles/etcd/tasks/main.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@
1414
tags: upgrade_etcd
1515

1616
- name: 分发证书相关
17-
synchronize: src={{ ca_dir }}/{{ item }} dest={{ ca_dir }}/{{ item }}
17+
copy: src={{ base_dir }}/.cluster/ssl/{{ item }} dest={{ ca_dir }}/{{ item }}
1818
with_items:
1919
- ca.pem
2020
- ca-key.pem
2121
- ca-config.json
22-
delegate_to: "{{ groups.deploy[0] }}"
2322

2423
- name: 创建etcd证书请求
2524
template: src=etcd-csr.json.j2 dest=/etc/etcd/ssl/etcd-csr.json

0 commit comments

Comments
 (0)