George
Это ловить тестами. Но мы стараемся писать роли так, чтобы минимально аффектать другие
без аффекта не получится. Пересекающиеся и несовместимые настройки типа sysctl etc. С другой стороны, это типикал проблема серверов звездочек. Не пытайтесь навесить 100500 функций на один сервер и все будет ок
Lev
тестируйте плейбуки молекулой. Это раз
А можно поподробгей как молекулой тестить плэйбуки?
Aleksey
не зашло тогда мне тестинфра
George
А можно поподробгей как молекулой тестить плэйбуки?
@tgadiev рассказывал - там подменяешь кусочек в молекуле и она применяет Ваш плейбук
George
Также, как и плейбуки
имелось в виду - так же - как и роли?
Aleksey
Так видно?
спасибо
Timur
имелось в виду - так же - как и роли?
Просто указываете в сценарии нужную плейбуку и все
Timur
спасибо
Заработало?
Aleksey
yep
Aleksey
https://code.getnoc.com/noc/ansible_deploy/-/jobs/79962 чот побежало
Timur
Aleksey
достойно занесения в фак
Timur
Не благодарите :)
Aleksey
но я уже. так поздно
Timur
Можно линку?
Что там линку? В молекуле просто пишете нужную плейбуку и все. playbooks: create: ../default/create.yml destroy: ../default/destroy.yml converge: my_mega_playbook.yml
Timur
Главное, запускать молекулу из той же папки, где и лежит ваша плейбука для тестов
Aleksey
там где не завезли...
Timur
там где не завезли...
Так надо самим завезти тогда
Timur
И вам грех жаловаться. У вас же vmware
Aleksey
да ну. ее админить надо.
Aleksey
там уже не моё
Aleksey
там @EKbfh
Timur
да ну. ее админить надо.
Ну, тогда переезжайте в облако
Timur
Lev
Что там линку? В молекуле просто пишете нужную плейбуку и все. playbooks: create: ../default/create.yml destroy: ../default/destroy.yml converge: my_mega_playbook.yml
А как это с эксплуатационной точки зрения выглядит? В директории с плэйбуками создаем директорию с молекулой и там для каждого плэйбука делаем сценарий? Или как?
Timur
Молекула по умолчанию смотрит на файлы в пути запуска
Timur
Потом - в папки сценария
Lev
Да, как вариант
А как у вас?
Николай
Доброе утро! Есть ли возможность задать значение по-умолчанию при использовании selectattr()? users: - name: John state: True - name: Jessie - name: Boob state: False Мне нужно, чтобы выражение {{ users|selectattr('state') }} работало при не определённом явно state (с when можно применять item['state']|d(True)). Методом тыка найти нужный синтаксис не удалось, документация Jinja2 и поисковики не помогли.
Timur
А как у вас?
Мы также делали для плейбук
Николай
Как звучит исходная задача?
Использовать selectattr вместо when в loop, чтобы не было лишних скипов. В обрабатываемых списках широко применяются значения по-умолчанию (вроде state: bool, который должен быть True если не определён)
Николай
Спасибо, надо попробовать. Звучит интересно.
Maksym
доброе утро) поделитесь плз мыслями как правильнее использовать postgresql_owner после рестора дампа бд. К примеру развернули инстанс с дампа где овнер был овне1 на разных объектах постгреса, нужно перегнать на овнер_текущий. Как это оптимальнее всего сделать? https://docs.ansible.com/ansible/latest/modules/postgresql_owner_module.html как я понял нужно передавать и старого и нового, казывать конкретно каждую талицу (базу, функции и тд). Хотелось бы все дерево объектов заменить на овнер_текущий вне зависимости кто был в дампе наверное через reassign_owned_by с передачей старого овнера(ов) самый оптимальный вариант...
Anonymous
доброе утро коллеги, вопрос - есть в vars перменная fqdn хоста, мне нужен дальше ее ip - это праваильно делать через set_vars или как то по другому можно ? ё
Anonymous
ну мб не так выразился
Timur
Что вы хотите сделать?
Anonymous
в идеале было бы на уровне. vars задать пермеенную fqdn но тут же на уроовне варс знать какой адрес
Anonymous
ну есть переменная которая много где использует адрес сервера
Anonymous
есть спенцифические прилоги которым нужно не имя сервера а ип из этой перменной
Anonymous
хотелось бы простым способом узнавать адрес на основе первой переменной
Timur
В фактах смотрели?
Anonymous
уточнение это не удаленный хост - условно первая переменная говрит ya.ru а во второй я хочу знать его адрес
Anonymous
пока я вижу ттолько через set_fact это узнать
Timur
При чем тут set_fact?
Timur
Соответствие некоего url айпи адресу в вашей подсети вообще может не иметь однозначного решения
Timur
Можно попробовать отрезолвить
Anonymous
может и не иметь - но в частном случае имеет
Timur
Но результат будет зависеть от настроек dns на конкретном хосте
Anonymous
ну отрезолвить и сделать доп перменную это понятно, но как то костыльно имхо, встроенного ничего нет
Anonymous
ладно забей, понял что по дедовскому способу наколхозить придется
Vilgelm_skavr
народ ? а поделитесь ссылочками или дайте пример плейбука где с помощью ансибл можно скопировать файл на сервера которыми управляешь....
Vilgelm_skavr
я так понимаю это должно выглядеть как-то так :
Vilgelm_skavr
--- - hosts: hservers tasks: - name: update hservers command: cp name: hserver.sh
Vilgelm_skavr
или что-то в этом духе ?
Vilgelm_skavr
спс сейчас погуглю...
V.
всем привет, я использую подобную конструкцию: - set_fact: device_name: "{{ item.key }}" with_dict: "{{ ansible_devices }}" when: ansible_devices.{{ item.key }}.links.ids | join(',') | regex_search('TOSHIBA') все работает, только выдается варнинг - [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: ansible_devices.{{ item.key }}.links.ids | join(',') | regex_search('TOSHIBA') как правильно сделать?
V.
пробовал тоже самое еще сделать с помощью json_query, но не осилил (
Sergey
Типа вот такого: ansible_devices[item['key']]['links']['ids'] | join(',') | regex_search('TOSHIBA')
V.
Типа вот такого: ansible_devices[item['key']]['links']['ids'] | join(',') | regex_search('TOSHIBA')
ок, спасибо, другая ворма записи, не через точку а через []
Sergey
ну потому что ты вообще-то обращаешься к ключам словаря, а не к свойствам объекта 😉
Sergey
а доступ к свойствам с именем, хранящимся в переменной - это отдельная история, и ты этого не хочешь 😊
V.
изначальная задача уменя была получить имя устройства зная что в его ствойства будет входить некоторая строка