diff --git a/ansible/k8s_setup.yml b/ansible/k8s_setup.yml index ad65540..8398c70 100644 --- a/ansible/k8s_setup.yml +++ b/ansible/k8s_setup.yml @@ -8,12 +8,8 @@ shell: "while fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1; do sleep 5; done;" changed_when: false - - name: 1. Ядерная очистка APT и блокировок K8s - shell: | - apt-mark unhold kubelet kubeadm kubectl || true - rm -f /etc/apt/sources.list.d/kubernetes.list /etc/apt/sources.list.d/*k8s* - apt-get remove --purge -y kubelet kubeadm kubectl kubernetes-cni cri-tools || true - apt-get autoremove -y + - name: 1. Очистка старых репозиториев + shell: "rm -f /etc/apt/sources.list.d/kubernetes.list /etc/apt/sources.list.d/*k8s*" changed_when: true - name: 2. Настройка APT (Force IPv4 и MTU) @@ -75,14 +71,24 @@ content: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /" - name: 10. Принудительная установка компонентов K8s - shell: | - apt-get update - apt-get install -y --allow-change-held-packages kubelet kubeadm kubectl - apt-mark hold kubelet kubeadm kubectl - register: install_res - until: install_res is success - retries: 3 - delay: 10 + apt: + name: [kubelet, kubeadm, kubectl] + state: present + update_cache: yes + allow_change_held_packages: yes + + - name: 11. Фиксация версий + shell: apt-mark hold kubelet kubeadm kubectl + changed_when: false + + - name: 12. Поиск пути к kubeadm (Диагностика) + shell: which kubeadm || find /usr -name kubeadm + register: kubeadm_path_check + changed_when: false + + - name: 13. Сохранение пути к kubeadm как переменной + set_fact: + kubeadm_bin: "{{ kubeadm_path_check.stdout }}" - name: Инициализация Master-ноды hosts: masters @@ -93,8 +99,8 @@ path: /etc/kubernetes/admin.conf register: kube_init - - name: Kubeadm Init (Абсолютный путь) - shell: /usr/bin/kubeadm init --pod-network-cidr=10.244.0.0/16 --skip-phases=addon/kube-proxy + - name: Kubeadm Init + shell: "{{ kubeadm_bin }} init --pod-network-cidr=10.244.0.0/16 --skip-phases=addon/kube-proxy" when: not kube_init.stat.exists - name: Настройка конфига для пользователя ubuntu @@ -106,7 +112,7 @@ creates: /home/ubuntu/.kube/config - name: Генерация команды Join - shell: /usr/bin/kubeadm token create --print-join-command + shell: "{{ kubeadm_bin }} token create --print-join-command" register: join_command_raw - name: Сохранение факта Join @@ -122,8 +128,8 @@ path: /etc/kubernetes/kubelet.conf register: kube_worker_init - - name: Join к кластеру (Абсолютный путь) - shell: "/usr/bin/{{ hostvars[groups['masters'][0]]['join_command'] }}" + - name: Join к кластеру + shell: "{{ hostvars[groups['masters'][0]]['join_command'] }}" when: not kube_worker_init.stat.exists - name: Установка Cilium (eBPF)