Ansible: читать удаленный файл

Я генерирую файлы с возможностью доступа к удаленному хосту, и после этого поколения я хотел бы прочитать файлы тезисов в другой задаче.

Я не могу найти какой-либо модуль для чтения удаленного файла с невозможным (поиск выглядит только на локальном хосте).

Знаете ли вы модуль вроде этого?

Спасибо

EDIT:

Вот мой прецедент:

Я генерирую ключи ssh и добавляю их в github. Эти ключи устанавливаются объектом в файлах var, поэтому я выполняю цикл следующим образом:

    tasks:
  - name: Create ssh key
    user:
      name: "{{sshConfigFile.user}}"
      generate_ssh_key: yes
      ssh_key_file: ".ssh/{{item.value.file}}"
      state: present
    with_dict: "{{sshConfiguration}}"

Он работает очень хорошо, но как читать эти ключи, чтобы отправить его в github через API?

Ответы

Ответ 1

Как вы сказали, все поисковые запросы находятся на локальном хосте. Но все они могут выполняться на удаленном компьютере с помощью shell и register. Можете ли вы сказать, что именно вы пытаетесь сделать? просто пример.

  - shell: cat "{{remote_file}}"
    register: data

  - shell: ......
    with_xxxx:

Ответ 2

Либо запустить с флагом --diff (выводит diff при изменении файла назначения).

ansible-playbook --diff server.yaml

или хлебать это..

- name: Slurp hosts file
  slurp:
    src: /etc/hosts
  register: slurpfile

- debug: msg="{{ slurpfile['content'] | b64decode }}"

Ответ 3

Вы можете попробовать модуль 'fetch', который извлечет файл ключа по пути назначения на localhost:

fetch: 
  src: ".ssh/{{item.value.file}}" 
  dest:"/tmp/ssh_keys/{{item.value.file}}"
  flat: yes
with_dict: "{{sshConfiguration}}" 

Ответ 4

Вы можете зарегистрировать содержимое файла в переменной, используя команду register. Вот что я хотел бы предложить,

- name: get contents of file
  command: cat /path/to/file
  register: filename
  become: true # use case specific option

- name: viewing the contents
  debug:
    msg: "{{filename.stdout}}"

Это отобразит содержимое файла.

Ответ 5

Используя командный модуль, вы можете прочитать или использовать этот файл в другой задаче в удаленном node.

как

-command: cp /tmp/xxx/example.sh /usr/local/yyy