Ansible модуль known_hosts с циклом - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь запустить задачу, выполняющую модуль known_hosts со списком ключевых записей. Проблема в том, что я продолжаю получать следующую ошибку, хотя переменная имеет данные при использовании debug.

The task includes an option with an undefined variable. The error was: 'item' is undefined

У меня есть следующая задача, которая регистрирует переменную вывода s sh -keyscan

- name: keyscan platform hosts
  shell: "ssh-keyscan ssh.{{ item }}"
  register: "platform_ssh_host_keys"
  loop:
    - "one.example.com"
    - "two.example.com"

Когда я запускаю следующую отладку, я получаю стандартный вывод, содержащий ключ

- name: debug
  debug:
    var: item.stdout
  with_items: "{{platform_ssh_host_keys.results}}"

Но как только я запускаю его с known_hosts, он говорит, что item is undefined.

- name: configure known_hosts
  known_hosts:
    path: "~/.ssh/known_hosts"
    name: "ssh.{{ item.item }}"
    key: "{{ item.stdout }}"
    state: present
    loop: "{{ platform_ssh_host_keys.results }}"

Я не понимаю, как item можно определить в debug, но не known_hosts задачу.

1 Ответ

0 голосов
/ 05 мая 2020

?‍♂️ Что ж, после того, как я разместил это, я сразу понял, что проблема связана с тем, что у меня loop как свойство для known_hosts, а не задач. Итак, проблема заключалась в отступе.

Это все устранило.

- name: configure known_hosts
  known_hosts:
    path: "~/.ssh/known_hosts"
    name: "ssh.{{ item.item }}"
    key: "{{ item.stdout }}"
    state: present
  loop: "{{platform_ssh_host_keys.results}}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...