#ansible #vpn #cisco
#ansible #vpn #cisco
Вопрос:
Необходимо автоматизировать установку cisco anyconnect с помощью Ansible. При запуске сценария установки запрашивается согласие с условиями и положениями. Как я могу ответить «ДА» на это? Первый приведенный ниже подход, по-видимому, работает (не пробовал), но требует Python 2.6 в соответствии с этим документом Ansible; Мне нужно решение на Python 3. Второй подход, приведенный ниже, также не сработал.
Код сборника воспроизведения:
- name: Install CISCO annyconnect #>>>> needs pexpect module from python2 <<<<
become: yes
expect:
command: "/opt/CISCO/{{ vpn }}/vpn/vpn_install.sh"
responses:
Question:
- yes
- name: Install CISCO annyconnect
become: yes
shell: yes | "/opt/CISCO/{{ vpn }}/vpn/vpn_install.sh"
Установка Cisco VPN с помощью скрипта:
.
.
.
Description of Other Rights and Obligations
Please refer to the Cisco Systems, Inc. End User License Agreement.
http://www.cisco.com/en/US/docs/general/warranty/English/EU1KEN_.html
Do you accept the terms in the license agreement? [y/n]
Ответ №1:
Решение не требует python 2.6, но Python> = 2.6.
Логика, лежащая в основе карты «ответы», заключается в том, что, когда в выходных данных найдена левая сторона, она будет отвечать программе правой стороной. Идея состоит в том, чтобы искать приглашение ввода и, когда приглашение найдено, отвечать.
Итак, в настоящее время ваш пример кода ищет «Вопрос» в выводе программы (который, вероятно, ничему не соответствует), но он должен искать какую-то другую строку, которая сообщает нам, что ей нужен ввод. «Принимаете ли вы» выглядит хорошим кандидатом.
- name: Install CISCO annyconnect #>>>> needs pexpect module from python2 <<<<
become: yes
expect:
command: "/opt/CISCO/{{ vpn }}/vpn/vpn_install.sh"
responses:
"Do you accept": y
Комментарии:
1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более высокого качества, и с большей вероятностью получат одобрение.
2. Хотя этот код может ответить на вопрос, предоставление дополнительного контекста о том, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.