|
1 | 1 | - name: prepare some dirs
|
2 | 2 | file: name={{ item }} state=directory
|
3 | 3 | 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" |
6 | 6 |
|
7 | 7 | - name: 本地设置 bin 目录权限
|
8 | 8 | file: path={{ base_dir }}/bin state=directory mode=0755 recurse=yes
|
9 | 9 |
|
10 | 10 | # 注册变量p,根据p的stat信息判断是否已经生成过ca证书,如果没有,下一步生成证书
|
11 | 11 | # 如果已经有ca证书,为了保证整个安装的幂等性,跳过证书生成的步骤
|
12 | 12 | - name: 读取ca证书stat信息
|
13 |
| - stat: path="{{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl/ca.pem" |
| 13 | + stat: path="{{ base_dir }}/.cluster/ssl/ca.pem" |
14 | 14 | register: p
|
15 | 15 |
|
16 | 16 | - 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 }} |
18 | 18 | with_items:
|
19 | 19 | - "ca-config.json"
|
20 | 20 | - "ca-csr.json"
|
21 | 21 | when: p.stat.isreg is not defined
|
22 | 22 |
|
23 | 23 | - name: 生成 CA 证书和私钥
|
24 | 24 | when: p.stat.isreg is not defined
|
25 |
| - shell: "cd {{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/ssl && \ |
| 25 | + shell: "cd {{ base_dir }}/.cluster/ssl && \ |
26 | 26 | {{ base_dir }}/bin/cfssl gencert -initca ca-csr.json | {{ base_dir }}/bin/cfssljson -bare ca"
|
27 | 27 |
|
28 | 28 | #----------- 创建kubectl kubeconfig文件: /root/.kube/config
|
|
31 | 31 | file: path=/root/.kube state=absent
|
32 | 32 |
|
33 | 33 | - 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 |
35 | 35 | when: USER_NAME == "read"
|
36 | 36 |
|
37 | 37 | - 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" |
39 | 39 | when: USER_NAME == "read"
|
40 | 40 |
|
41 | 41 | - 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 |
43 | 43 |
|
44 | 44 | - 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 \ |
46 | 46 | -ca=ca.pem \
|
47 | 47 | -ca-key=ca-key.pem \
|
48 | 48 | -config=ca-config.json \
|
49 | 49 | -profile=kubernetes {{ USER_NAME }}-csr.json | {{ base_dir }}/bin/cfssljson -bare {{ USER_NAME }}"
|
50 | 50 |
|
51 | 51 | - name: 设置集群参数
|
52 | 52 | 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 \ |
54 | 54 | --embed-certs=true \
|
55 | 55 | --server={{ KUBE_APISERVER }}"
|
56 | 56 |
|
57 | 57 | - name: 设置客户端认证参数
|
58 | 58 | 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 \ |
60 | 60 | --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" |
62 | 62 |
|
63 | 63 | - name: 设置上下文参数
|
64 | 64 | shell: "{{ base_dir }}/bin/kubectl config set-context {{ CONTEXT_NAME }} \
|
|
68 | 68 | shell: "{{ base_dir }}/bin/kubectl config use-context {{ CONTEXT_NAME }}"
|
69 | 69 | tags: create_kctl_cfg
|
70 | 70 |
|
71 |
| -#------------创建kube-proxy.kubeconfig配置文件: /root/kube-proxy.kubeconfig |
| 71 | +#------------创建kube-proxy配置文件: kube-proxy.kubeconfig |
72 | 72 | - 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 |
74 | 74 |
|
75 | 75 | - 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 \ |
77 | 77 | -ca=ca.pem \
|
78 | 78 | -ca-key=ca-key.pem \
|
79 | 79 | -config=ca-config.json \
|
80 | 80 | -profile=kubernetes kube-proxy-csr.json | {{ base_dir }}/bin/cfssljson -bare kube-proxy"
|
81 | 81 |
|
82 | 82 | - name: 设置集群参数
|
83 | 83 | 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 \ |
85 | 85 | --embed-certs=true \
|
86 | 86 | --server={{ KUBE_APISERVER }} \
|
87 |
| - --kubeconfig={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/kube-proxy.kubeconfig" |
| 87 | + --kubeconfig={{ base_dir }}/.cluster/kube-proxy.kubeconfig" |
88 | 88 | - name: 设置客户端认证参数
|
89 | 89 | 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 \ |
92 | 92 | --embed-certs=true \
|
93 |
| - --kubeconfig={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/kube-proxy.kubeconfig" |
| 93 | + --kubeconfig={{ base_dir }}/.cluster/kube-proxy.kubeconfig" |
94 | 94 | - name: 设置上下文参数
|
95 | 95 | shell: "{{ base_dir }}/bin/kubectl config set-context default \
|
96 | 96 | --cluster=kubernetes \
|
97 | 97 | --user=kube-proxy \
|
98 |
| - --kubeconfig={{ base_dir }}/.cluster/{{ CLUSTER_NAME }}/kube-proxy.kubeconfig" |
| 98 | + --kubeconfig={{ base_dir }}/.cluster/kube-proxy.kubeconfig" |
99 | 99 | - name: 选择默认上下文
|
100 | 100 | 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" |
102 | 102 |
|
103 | 103 | - name: 本地创建 easzctl 工具的软连接
|
104 | 104 | file: src={{ base_dir }}/tools/easzctl dest=/usr/bin/easzctl state=link
|
|
0 commit comments