- 18, Oct 2024
- #1
В Ansible я пытаюсь создать переменную из задачи на одном хосте, а затем использовать эту переменную, чтобы что-то сделать с другим хостом. В частности, я пытаюсь создать кластер Kubernetes. На узле плоскости управления я могу сохранить команду объединения в переменную, но, похоже, она ограничена только исходным хостом. Я не могу понять, как получить доступ к этой переменной. с другого хоста.
- name: read join command from the controlPlane
shell: kubeadm token create --print-join-command
when: inventory_hostname in groups['controlPlane']
register: joinCmd
- name: join worker nodes to cluster
command: "{{ joinCmd.stdout }}"
when: inventory_hostname in groups['workerNodes']
Вышеупомянутое не работает во второй задаче (В задачу входит опция с неопределенной переменной. ошибка была: «объект dict» не имеет атрибута «stdout».). Стандартный подход, похоже, заключается в сохранении строки в файле локально, копировании файла на рабочие узлы и выполнении его локально, что кажется громоздким (и оставляет токен соединения валяющимся). Как я могу добиться этого только с переменными?
Спасибо,
Джим
#kubernetes #ansible