Primary server detection previously used ansible_default_ipv4.address compared against k3s_primary_server_ip, which breaks with --limit since facts are only gathered for the targeted hosts, causing the variable to resolve to the wrong IP. - Replace IP comparisons with `inventory_hostname == groups['k3s_server'] | first` in main.yaml (primary install, secondary install, kubeconfig tasks) - Delegate the node-token slurp to the primary server unconditionally so pull_token.yaml works correctly when run against any single node with --limit Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
30 lines
806 B
YAML
30 lines
806 B
YAML
---
|
|
- name: Install dependencies for apt to use repositories over HTTPS
|
|
ansible.builtin.apt:
|
|
name: "{{ item }}"
|
|
state: present
|
|
update_cache: true
|
|
loop:
|
|
- qemu-guest-agent
|
|
become: true
|
|
|
|
- name: See if k3s file exists
|
|
ansible.builtin.stat:
|
|
path: /usr/local/bin/k3s
|
|
register: k3s_status
|
|
|
|
- name: Install primary k3s server
|
|
include_tasks: primary_installation.yaml
|
|
when: inventory_hostname == groups['k3s_server'] | first
|
|
|
|
- name: Get token from primary k3s server
|
|
include_tasks: pull_token.yaml
|
|
|
|
- name: Install seconary k3s servers
|
|
include_tasks: secondary_installation.yaml
|
|
when: inventory_hostname != groups['k3s_server'] | first
|
|
|
|
- name: Set kubeconfig on localhost
|
|
include_tasks: create_kubeconfig.yaml
|
|
when: inventory_hostname == groups['k3s_server'] | first
|