Files
server/ansible/k3s/install.yml
2025-06-09 23:32:10 -04:00

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