--- - name: certs | make sure the certificate directory exits file: path={{ kube_cert_dir }} state=directory mode=o-rwx group={{ kube_cert_group }} - name: tokens | make sure the tokens directory exits file: path={{ kube_token_dir }} state=directory mode=o-rwx group={{ kube_cert_group }} - include: gen_certs.yml when: inventory_hostname == groups['kube-master'][0] - include: gen_tokens.yml # Sync certs between nodes - user: name: '{{ansible_user_id}}' generate_ssh_key: yes delegate_to: "{{ groups['kube-master'][0] }}" run_once: yes - name: 'get ssh keypair' slurp: path=~/.ssh/id_rsa.pub register: public_key delegate_to: "{{ groups['kube-master'][0] }}" - name: 'setup keypair on nodes' authorized_key: user: '{{ansible_user_id}}' key: "{{public_key.content|b64decode }}" - name: synchronize certificates for nodes synchronize: src: "{{ item }}" dest: "{{ kube_cert_dir }}" recursive: yes delete: yes rsync_opts: [ '--one-file-system'] set_remote_user: false with_items: - "{{ kube_cert_dir}}/ca.pem" - "{{ kube_cert_dir}}/node.pem" - "{{ kube_cert_dir}}/node-key.pem" delegate_to: "{{ groups['kube-master'][0] }}" when: inventory_hostname not in "{{ groups['kube-master'] }}"