Ansible raw module - как обработать запрос пароля на SFTP / SCP? - PullRequest
0 голосов
/ 25 апреля 2019

Для создания доступной для воспроизведения плейбука поверх файла на целевой машине Junos мне нужен модуль raw и sftp / scp для использования.

Целевая машина (Junos) не имеет python , поэтому у меня есть только raw модуль на доступной стороне для запуска команд.И я пытался sftp / scp , оба требуют ввода пароля в приглашении, но не работают с использованием модуля raw .

Если команда копирования может быть выполнена в одной строке, это тоже сработает, но на целевой машине тоже нет sshpass .Итак, я надеюсь получить любой обходной путь, чтобы пароль мог быть предоставлен в приглашении из raw модуля ansible playbook.

Это отJunos, sftp работает нормально после ввода пароля в приглашении.

root@:~ # sftp <username>@host:/file/location/file destFile
<username>@host's password:

И в playbook есть та же команда для raw , но она не может обработать приглашение для пароль даже при использовании нескольких настроек команд для raw с использованием (; / &&).

     - name: "Copy config file on Junos"
#       raw: sftp <username>@host:/file/location/file destFile && <password>
#       raw: sftp <username>@host:/file/location/file destFile;<password>
       raw: sftp <username>@host:/file/location/file destFile
       register: disp
     - name: "Print disp"
       debug:
         var: disp 

Короче говоря, как я могу манипулировать с помощью raw модуль ansible, позволяющий указать пароль в приглашении?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Кажется, нет такого примера для обработки запроса пароля с модулем raw .

Таким образом, решили сделать все по-другому, используя ожидают скопировать файл с ansible host в junos . Вот рабочий .yml ниже:

- hosts: 127.0.0.1
  connection: local
  gather_facts: no
  tasks:
    - name: Copy config file on Junos
      expect:
        command: scp srcFile <user>@junos:/dest/file/
        responses:
          (.*)Password: "<password>"
      delegate_to: localhost
0 голосов
/ 25 апреля 2019

Попробуйте использовать ожидайте и " Delegate_to: хост ".Установите « ответов » для ваших нужд.

- name: Copy config file on Junos
  expect:
    command: scp  destFile username@junos:/file/location/file
    responses:
      (?i)username@junos's password: "MySekretPa$$word"
  delegate_to: host
...