- name: Instalar pip3 no host remoto become: true ansible.builtin.apt: name: python3-pip state: present update_cache: true - name: Instalar ruamel.yaml no host remoto become: true ansible.builtin.pip: name: ruamel.yaml executable: pip3 - name: Fazer download do manifest oficial do Flannel become: true get_url: url: https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml dest: /tmp/kube-flannel.yml - name: Substituir o CIDR da rede no manifest become: true replace: path: /tmp/kube-flannel.yml regexp: '10\.244\.0\.0/16' replace: '10.244.0.0/16' # .3. - name: Corrigir net-conf.json no manifest do Flannel become: true ansible.builtin.script: cmd: patch_netconf.py - name: cat flannel become: true shell: | cat /tmp/kube-flannel.yml register: flannel_manifest - name: Mostrar conteúdo do manifest become: true debug: var: flannel_manifest.stdout - name: Adicionar --iface=eth1 ao flanneld become: true ansible.builtin.lineinfile: path: /tmp/kube-flannel.yml insertafter: ' - --kube-subnet-mgr' line: ' - --iface=eth1' - name: Inicializar o cluster com kubeadm become: true command: argv: - kubeadm - init - --pod-network-cidr=10.244.0.0/16 # .3. - --apiserver-advertise-address=192.168.1.150 creates: /etc/kubernetes/admin.conf - name: Verificar se o diretório .kube já existe become: true stat: path: /home/fenix/.kube register: kube_dir - name: Criar diretório .kube para o usuário ubuntu become: true ansible.builtin.file: path: /home/fenix/.kube state: directory owner: fenix group: ubuntu mode: 0755 when: not kube_dir.stat.exists - name: Set up kubeconfig for user become: true copy: src: /etc/kubernetes/admin.conf dest: /home/fenix/.kube/config remote_src: yes owner: fenix group: ubuntu mode: 0644 when: not kube_dir.stat.exists - name: 33 Wait for Kubernetes API to be ready become: true shell: | kubectl get --raw='/healthz' environment: KUBECONFIG: /home/fenix/.kube/config register: api_health until: api_health.rc == 0 retries: 10 delay: 6 become: yes - name: cat flannel become: true shell: | cat /tmp/kube-flannel.yml register: flannel_manifest2 - name: Mostrar conteúdo do manifest become: true debug: var: flannel_manifest2.stdout - name: Aplicar o manifest do Flannel become: yes become_user: fenix shell: | kubectl apply -f /tmp/kube-flannel.yml environment: KUBECONFIG: /home/fenix/.kube/config - name: 34 Wait for Kubernetes API to be ready become: true shell: | kubectl get --raw='/healthz' environment: KUBECONFIG: /home/fenix/.kube/config register: api_health until: api_health.rc == 0 retries: 10 delay: 6 become: yes - name: Get kubeadm join command become: true shell: kubeadm token create --print-join-command register: join_cmd - name: Set join command as fact become: true set_fact: kubeadm_join_command: "{{ join_cmd.stdout }}"