simplemice.eth
но если не найду лучше придется
ℭ𝔞𝔯𝔯𝔬𝔩
Я повешал на чатбота шлака, не в тележке будь помянут, вебхуки в awx, но обратный выхлоп не получаю
simplemice.eth
мне управляшка не нужна, мне просто нужны нотификейшен что таск выполнен или нет
ℭ𝔞𝔯𝔯𝔬𝔩
simplemice.eth
вот да)
MRY
Вот такой вопрос. У меня есть разные группы хостов и для этих хостов мне нужны разные факты. У меня есть inventory/group_vars/windwos/vars.yml файл который описывает общие переменные дял всех windows хостов, но предположим что [Windows:children] windwos2012 или webservers и мемберы этих подгрупп должны получать разные переменные, вопрос вот в чем: для указания я могу использовать в inventory/hosts параметры [webservers:vars] а можно ли тожесамое сделать както в group_vars ? созданием поддиректорий вроде group_vars/windows/webservers/vars.yml потому что засирать hosts файл десятками а то и сотнями переменных не хочется
Dr. L.S.Dee
Для GLPI был модуль. Может, и для ансибла найдётся. Или длинным путём: запоротый таск - событие мониторинга - тикет - бот сигналит.
Dr. L.S.Dee
Dr. L.S.Dee
А, можно и сам модуль расковырять да собезьянничать, наверное.
simplemice.eth
тоже нашел... читаю вот
Timur
Timur
Timur
Timur
Ансибл - это для декларативного подхода
Timur
Если хотите использовать процедурный, лучше сразу брать какой-то скриптовый язык (тот же PowerShell) и фигачить сразу на нем, не заморачиваясь принципами идемпотентности прочим.
Asgoret
всем привет. Кто-нибудь встречался с ошибкой error: exactly one FILENAME is allowed в модуле command?
Таск:
- name: Patch and enable new config master-config
command: oc ex config patch /etc/origin/master/master-config.yaml.prepatch -p "$(cat "{{ item }}")" > /etc/origin/master/master-config.yaml
loop:
- master-config.patch
Stanislav
Для такой конструкции используйте shell
Stanislav
Смотрите доку на модуль command
Timur
Да, с перенаправлением вывода однозначно shell
Asgoret
taksa
Спасибо terminator , что принял меня во все группы сразу
Артём
добрый день. подскажите как сделать так чтобы результирующие исполняемые скрипты на питоне не удалялись.
Артём
есть playbook
Артём
---
- hosts: c3750G
tasks:
- name: run show vlan on remote devices
cli_command:
command: show vlan
register: vlan
- debug: var=vlan.stdout_lines
Артём
для соединения использую
Артём
ansible_connection=network_cli
ansible_network_os=ios
Артём
в конфигурации устанавливаю keep_remote_files = True
Артём
но конечного исполняемого скрипта найти нигде не могу.
Артём
читал доку по отладке https://docs.ansible.com/ansible/latest/network/user_guide/network_debug_troubleshooting.html, но к сожалению особо не помогла в решении данной задачи
Артём
переформулирую вопрос. Можно каким либо образом отлаживать playbook сетевого оборудования в pycharm?
Sergey
Sergey
Да и то- а как, ты думаешь, это всё выглядит? Просто модуль питонячий.
Sergey
Какая версия ансибла у тебя?
Артём
2.7.6
Sergey
https://github.com/ansible/ansible/blob/v2.7.6/lib/ansible/modules/network/cli/cli_command.py
Sergey
Вот твой скрипт.
Sergey
Запускается локально, соответственно, никуда не копируется.
Артём
я думаю на контролере перед началом управления оборудованием создается финальный скрипт, который и управляет оборудованием. Вот его я и хотел бы подебажить.
Sergey
Нет, модель исполнения другая. Ансибл не является компилятором.
Sergey
В нормальных системах на удалённом хосте поднимается интерпретатор Python, которому через pipe приезжает модуль в zip + аргументы его.
Sergey
В ненормальных - модуль исполняется на контроллере.
Артём
конечная цель не отладить модуль cli_command, а как работает network_cli на примере ios.
Артём
чтобы на его примере слегка напильником адаптировать его для другого похожего оборудования.
Sergey
Эммммм.
Тебе модуль другой нужен.
Timur
Sergey
https://github.com/ansible/ansible/blob/v2.7.6/lib/ansible/modules/network/ios/ios_command.py
Артём
как раз второй вариант. ненормальный модуль интересует.
Артём
хочу посмотреть результирующий код.
Sergey
Что значит "результирующий код"? Это и есть код, который исполняется. Ansible - не компилятор вообще-то.
Timur
George
George
Он же может паковать код в блоб и выполнять на удаленной машине
Sergey
George
Sergey
Модуль жмётся в zip вместе с аргументами, поотом швыряется через ssh удалённому Python-интерпретатору.
Sergey
George
George
Достаточно только немного магии, чтобы он по ходу зиплвания поменялся
Артём
перед началом выполнения playbook в котором описан cli_command. он создает соединение через плагин network_cli.
Sergey
Sergey
Вот доклад
Артём
мне интересно как он создает соединение с оборудование через плагин network_cli когда я указываю конкретную OS.
Sergey
Артём
чтобы посмотрев как механизм работает, создать что то аналогичное для своего оборудования. А самое главное в ходе отладки плагинов подебажить.
Sergey
Судя по коду, если хочется грязных подкапотных подробностей, достаточно -vvvvv написать как параметр для ansible-playbook.
Артём
Артём
Артём
но в нем я только нашел необходимые используемые плагины.
Sergey
этого мало. только debug во ansible.cfg дал результат.
А ты какой результат хочешь получить вообще? В Ansible есть поддержка для своих custom-плагинов и модулей прямо из коробки. Рядом с roles кладёшь library - и опаньки, если плагин/модуль можно загрузить вообще [читай - если ты соблюдал конвенции Ansible при написании кода], то он будет загружен.
Sergey
И более того - вызван.
Артём
Артём
а хочу я в дебаге пошагово их отладить и посмотреть как они работают.
Артём
либо в pycharm либо в pdb. неважно.
Timur
https://docs.ansible.com/ansible/latest/dev_guide/debugging.html
Timur
Там обычный ssh плагин используется, емнип