diff --git a/docs/01-创建CA证书和环境配置.md b/docs/01-创建CA证书和环境配置.md index 1c68be0..a75d4bf 100644 --- a/docs/01-创建CA证书和环境配置.md +++ b/docs/01-创建CA证书和环境配置.md @@ -74,6 +74,20 @@ cfssl gencert -initca ca-csr.json | cfssljson -bare ca ``` + 注意整个集群只能有一个CA证书和配置文件,所以下一步要分发给每一个节点,包括calico/node也需要使用,`ansible` 角色(role) `prepare` 会完成CA 证书分发,所以把ca 证书相关先复制到 `roles/prepare/files/` +#### 准备分发 CA证书 + +``` bash +- name: 准备分发 CA证书 + copy: src={{ ca_dir }}/{{ item }} dest={{ base_dir }}/roles/prepare/files/{{ item }} force=no + with_items: + - ca.pem + - ca-key.pem + - ca.csr + - ca-config.json +``` ++ force=no 保证整个安装的幂等性,如果已经生成过CA证书,就使用已经存在的CA,简单说可以多次运行 `ansible-playbook 90.setup.yml` ++ 如果确实需要更新CA 证书,删除/roles/prepare/files/ca* 可以使用新CA 证书 + ### kubedns.yaml 配置生成 + kubedns.yaml文件中部分参数(CLUSTER_DNS_SVC_IP, CLUSTER_DNS_DOMAIN)根据hosts文件设置而定,因此需要用template模块替换参数 diff --git a/roles/deploy/tasks/main.yml b/roles/deploy/tasks/main.yml index 0c022fb..7b2948b 100644 --- a/roles/deploy/tasks/main.yml +++ b/roles/deploy/tasks/main.yml @@ -21,8 +21,14 @@ - name: 生成 CA 证书和私钥 shell: "cd {{ ca_dir }} && {{ bin_dir }}/cfssl gencert -initca ca-csr.json | {{ bin_dir }}/cfssljson -bare ca" +# 为了保证整个安装的幂等性,如果已经生成过CA证书,就使用已经存在的CA;删除/roles/prepare/files/ca* 可以使用新CA 证书 - name: 准备分发 CA证书 - shell: "cd {{ ca_dir }} && cp ca* {{ base_dir }}/roles/prepare/files/" + copy: src={{ ca_dir }}/{{ item }} dest={{ base_dir }}/roles/prepare/files/{{ item }} force=no + with_items: + - ca.pem + - ca-key.pem + - ca.csr + - ca-config.json # kubedns.yaml文件中部分参数根据hosts文件设置而定,因此需要用template模块替换参数 - name: 准备 kubedns的部署文件 kubedns.yaml