Ansible: запрос на ввод пароля включения в cisco ios

#ansible

#ansible

Вопрос:

Мне нужно, чтобы скрипт запрашивал пароль для включения после ввода в непривилегированном режиме в cisco ios. Пока это то, что у меня работает, но я не хочу вводить свой реальный пароль «включить» где-либо на моем компьютере.

 ---

- name: Basic Show Commands
hosts: cisco
gather_facts: False
connection: local

tasks:
 - name: show run
   ios_command:
     commands:
      - show run
     provider:
       authorize: yes
       auth_pass: my_enable_password
   register: show_run

- debug:
   var: show_run.stdout_lines

- name: copy show run to file

  local_action: copy content={{show_run.stdout[0]}} dest=/mnt/c/Ansible/show_run
  

Я запускаю playbook следующим образом:

 ansible-playbook -u my_username -k /mnt/c/Ansible/show_run.yaml
  

Как мне это сделать?

Комментарии:

1. Рассматривали ли вы возможность использования одного из вариантов хранилища? У Ansible есть хранилище. Существуют также фильтры hashi_vault, а также несколько других, которые позволяют Ansible безопасно извлекать секреты во время выполнения.

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

3. Проверьте ansible prompt в документации. Если у вас возникла конкретная проблема при реализации этого, отправьте новый вопрос.

Ответ №1:

Это очень старая тема, но ради кого-то нового, ищущего ответ, я сделал это-

 ansible-playbook -u my_username --ask-pass --ask-become-pass /mnt/c/Ansible/show_run.yaml
  

Кроме того, в файле host,

 [host_group:vars]
ansible_become=yes
ansible_become_method=enable
ansible_network_os=ios
  

Ответ №2:

Вариантом «заставить скрипт запрашивать пароль для включения» было бы использовать vars_prompt. Смотрите пример ниже

 ...
vars_prompt:
  - name: "my_enable_password"
    prompt: "Cisco auth_pass:"
tasks:
...