модуль FTD Ansible
-
Здравствуйте, Я пытаюсь обновить профиль подключения StoS с помощью модулей FTD Ansible. Я не могу пройти дальше первого сообщения. При запуске операции я постоянно получаю ошибку: fatal: [ftd]: FAILED! => {"changed": false, "msg": {"Invalid data provided": "'type'"}} В моем плейбуке я извлекаю настройки VPN в задаче и сохраняю результат как «stosprofile», который затем использую для заполнения всех обязательных полей в соответствии с документацией:
https://developer.cisco.com/site/ftd-ansible/#!editstosconnectionprofile/ - name: edit outside stos vpn ftd_configuration: operation: editSToSConnectionProfile data: name: Name_Updated_2 ikev1AuthMethod: "{{ stosprofile.ikev1AuthMethod }}" ikev2AuthMethod: "{{ stosprofile.ikev2AuthMethod }}" ikev1Enabled: "{{ stosprofile.ikev1Enabled }}" ikev2Enabled: "{{ stosprofile.ikev2Enabled }}" rriEnabled: "{{ stosprofile.rriEnabled }}" dynamicRRIEnabled: "{{ stosprofile.dynamicRRIEnabled }}" ipsecLifetimeInSeconds: "{{ stosprofile.ipsecLifetimeInSeconds }}" ipsecLifetimeInKiloBytes: "{{ stosprofile.ipsecLifetimeInKiloBytes }}" ipsecLifetimeUnlimited: "{{ stosprofile.ipsecLifetimeUnlimited }}" type: "stosconnectionprofile" outsideInterfaces: "{{ stosprofile.outsideInterfaces }}" id: "{{ stosprofile.id }}" path_params: objId: <objid> Когда я запускаю операцию сcheck_mode: yes, я получаю успешное завершение Что я упускаю? -
Привет, Майкл, Буквально только что нашел проблему и ее решение. Недавно я занимался устранением этой проблемы у одного из клиентов, и, похоже, в модуле FTDAnsible есть некоторые ошибки проверки (вероятно, связанные с версией FTD и проверкой спецификаций, выполняемой в Ansible). Это проблема ANSIBLE / ANSIBLE MODULE, а не FTD. Я предполагаю, что вы используете FTD 6.6 +. Я предполагаю это, потому что именно в этой версии были внесены изменения в спецификации, которые вызывают проблемы с устаревшей версией FTDAnsible в Ansible (даже версии 2.9). Суть в том, что когда вы пытаетесь отправить изменение в FTD через Ansible, модуль FTDAnsible проверяет команду, извлекая синтаксическую схему и убеждаясь, что ваша команда соответствует ей, и только после этого отправляет команду. Эта проверка не проходит в FTDAnsible с Ansible 2.9 и более ранними версиями с FTD 6.6+, потому что поле Type больше не предоставляется в спецификации. 15 и 16 декабря были внесены изменения, позволяющие FTDAnsible правильно проверять команды для внесения изменений, они были включены в версию v0.3.1, выпущенную 28 апреля 2020 года. Вы можете либо вручную обновить FTDAnsible до версии v0.3.1, либо вручную внести изменения в файлы модулей в вашей версии. Изменения здесь:
https://github.com/CiscoDevNet/FTDAnsible/commit/9ce13b31337294d6aaec733a47e13a3c2d522d54 -
Я хотел бы немного упростить эту задачу и предупредить/разъяснить об ошибке, которая в настоящее время влияет на модуль FTDAnsible. Даже если вы установите коллекцию Galaxy community.networks (которая содержит более новую версию FTDAnsible), в настоящее время она импортирует и использует встроенный fdm_swagger_client.py
Обычно НЕ рекомендуется изменять встроенные компоненты, поскольку при обновлении они могут быть перезаписаны, однако в данном случае нет другого решения, кроме как использовать версию контейнера DOCKER. В приложении находится ФАКТИЧЕСКИЙ файл, которым необходимо заменить текущий fdm_swagger_client.py, а инструкции следующие: В зависимости от версии Linux и версии Ansible «fdm_swagger_client» может находиться в разных каталогах из-за вашей дистрибутива Python, поэтому в приведенных ниже инструкциях это учтено СДЕЛАЙТЕ СНАЧАЛА СЛЕДУЮЩЕЕ: sudo su -
cd /
find . -name fdm_swagger_client.py Вы увидите что-то похожее на НЕ ДЕЛАЙТЕ ЭТО — ЭТО ПРИМЕР /usr/lib/python3.6/site-packages/ansible/module_utils/network/ftd/fdm_swagger_client.py Если вы установили коллекции Galaxy, вы увидите и другие, но именно тот, который начинается с каталога /USR/LIB, вам в конечном итоге нужно изменить, пока не будет выпущена новая версия и не будет устранена ошибка коллекции Galaxy. СДЕЛАЙТЕ ЭТО ВТОРОЕ Но замените путь к файлу на тот, который был возвращен при поиске с помощью команды FIND: mv
<
ORIGINAL FDM_SWAGGER_CLIENT PATH<
ORIGINAL FDM_SWAGGER_CLIENT PATH
.
BAKnano
<
ORIGINAL FDM_SWAGGER_CLIENT PATHНЕ ДЕЛАЙТЕ ЭТО - ЭТО ПРИМЕР mv /usr/lib/python3.6/site-packages/ansible/module_utils/network/ftd/fdm_swagger_client.py /usr/lib/python3.6/site-packages/ansible/module_utils/network/ftd/fdm_swagger_client.py.bak
nano /usr/lib/python3.6/site-packages/ansible/module_utils/network/ftd/fdm_swagger_client.py Теперь откройте файл, который я предоставил в этом посте, скопируйте текст и вставьте его в редактор nano. Затем нажмите CTRL+o, enter, CTRL+x. Вот и все! Вы закончили и теперь можете запускать плейбуки на FTD6.6+ -
Спасибо
[, @nstapp]
, Я готовлюсь к экзамену SAUTO, поэтому впервые работаю с Ansible и FTD, и это приводило меня в замешательство (особенно как полного новичка в Ansible). Наткнулся на ваш пост, и он сразу же решил мою проблему. СПАСИБО!!!!
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти