Можно ли использовать модуль Ansible raw ssh как "ожидаем"?

Другими словами, можно ли использовать "ожидаемый" модуль по чистому SSH-соединению?

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

Можно ли это сделать?

1 ответ

Решение

expect Модуль написан на Python, так что нет, это не сработает.

У Ansible есть модель взаимодействия с такими устройствами, как сетевые коммутаторы, которые аналогичным образом не запускают Python; Вы можете прочитать об этом в статье "Чем отличается автоматизация сети". Я не думаю, что это предложит какое-либо немедленное решение вашей проблемы, но предлагает способ достижения цели, если действительно важно интегрироваться с Ansible.

Вероятно, было бы проще использовать expect программа вместо Ansible.

В Ansible 2.7 и выше вы можете использовать модуль cli_command. Это что-то вроде "ожидать", и ему не нужен питон для цели. https://docs.ansible.com/ansible/latest/modules/cli_command_module.html

- name: multiple prompt, multiple answer (mandatory check for all prompts)
  cli_command:
    command: "copy sftp sftp://user@host//user/test.img"
    check_all: True
    prompt:
      - "Confirm download operation"
      - "Password"
      - "Do you want to change that to the standby image"
    answer:
      - 'y'
      - <password>
      - 'y'
Другие вопросы по тегам