60 lines
1.8 KiB
YAML
60 lines
1.8 KiB
YAML
- name: Instalar K3s en el Cluster
|
|
hosts: k3s_cluster
|
|
become: true
|
|
|
|
tasks:
|
|
- name: Actualizar paquetes
|
|
ansible.builtin.apt:
|
|
update_cache: true
|
|
upgrade: true
|
|
|
|
- name: Instalar dependencias
|
|
ansible.builtin.apt:
|
|
name:
|
|
- curl
|
|
- vim
|
|
- unzip
|
|
- nfs-common
|
|
|
|
- name: Descargar instalador de K3s si no existe
|
|
ansible.builtin.get_url:
|
|
url: https://get.k3s.io
|
|
dest: /tmp/k3s-install.sh
|
|
mode: '0755'
|
|
register: k3s_install_script
|
|
|
|
- name: Instalar K3s en master
|
|
ansible.builtin.command: /tmp/k3s-install.sh server --disable=servicelb
|
|
args:
|
|
creates: /usr/local/bin/k3s
|
|
when: inventory_hostname in groups['k3s_master']
|
|
|
|
- name: Obtener el token de K3s
|
|
ansible.builtin.command: cat /var/lib/rancher/k3s/server/node-token
|
|
register: k3s_token
|
|
changed_when: false
|
|
delegate_to: "{{ groups['k3s_master'][0] }}"
|
|
|
|
- name: Instalar K3s en nodos worker
|
|
ansible.builtin.command: /tmp/k3s-install.sh
|
|
args:
|
|
creates: /usr/local/bin/k3s
|
|
environment:
|
|
K3S_URL: "https://{{ hostvars[groups['k3s_master'][0]]['inventory_hostname'] }}:6443"
|
|
K3S_TOKEN: "{{ k3s_token.stdout }}"
|
|
when: inventory_hostname in groups['k3s_workers']
|
|
|
|
- name: Copiar kubeconfig al host local
|
|
ansible.builtin.fetch:
|
|
src: /etc/rancher/k3s/k3s.yaml
|
|
dest: ../kubeconfig.yaml
|
|
flat: true
|
|
delegate_to: "{{ groups['k3s_master'][0] }}"
|
|
|
|
- name: Ajustar kubeconfig para acceso externo
|
|
ansible.builtin.replace:
|
|
path: ../kubeconfig.yaml
|
|
regexp: '127.0.0.1'
|
|
replace: "{{ hostvars[groups['k3s_master'][0]]['inventory_hostname'] }}"
|
|
delegate_to: localhost
|