Anton
Файл собран из n плэйбуков для разных групп одного инвентаря. Этот файл будет являться одним плэйбуком? Или одним плэем?
George
Ты делаешь include вложенным плейбукам?
Alex
по не собственной воле пришлось переехать на macos, и заметил такую особенность - плейбук, который на ubuntu18 + python 2.7 фейлился, то на macos 10.15 + python 3.8 нормально пробегает. Это нормальное поведение?
Sergey
Стоп, тогда лучше определиться с терминологией
А чего определяться-то? play - это конструкция вида hosts: <group1> tasks/roles: []
Sergey
Плеи хранятся в плейбуке.
Alex
ansible в обоих случаях 2.9, окружения одни и те же - gcp, образы виртуалок одинаковые
Sergey
Play - драма, пьеса, playbook - сборник пьес. Да, сборник может включать в себя только одну пьесу.
Alex
он там и был всегда
Sergey
ii python 2.7.15~rc1-1
Там 3.x по умолчанию
Tadeusz
ужс
Alex
Там 3.x по умолчанию
ну не суть. Не помню почему так исторически сложилось со 2м питоном
Alex
в 10.15 кстати по дефолту 2й питон стоит
Yevhen
Может зависит от используемых моделей. У меня отрабатывает одинаково, что на ubuntu, что на macos, что debian.
Vladimir
Всем привет. Подскажите пжлст, хочу репы прописывать как-то так: - name: Add yandex repo apt_repository: repo: deb http://mirror.yandex.ru/{{ ansible_distribution }} {{ ansible_distribution_release }} main state: present when: ansible_os_family == 'Debian' Но в source-list получаю строчку deb http://mirror.yandex.ru/Debian buster main Этот путь закрыт и репа не работает. Но если будет прописан deb http://mirror.yandex.ru/debian buster main, т.е. debian c маленькой буквы, то все хорошо. Можно ли как-то переменную {{ ansible_distribution }} заставить определяться с маленькой буквы?
Vladimir
Или нужно идти каким-то другим путем? Подскажите пжлст
George
| lower
George
Или как там это делается
Vladimir
фильтр lower
Спасибо 👍
Vladimir
Да, можно
Спасибо
Vladimir
Побежал пробовать
Vladimir
Да, работает
Alex
а кто что использует для запуска ansible на разных версиях питона? pyenv или pyvenv?
Anton
А чего определяться-то? play - это конструкция вида hosts: <group1> tasks/roles: []
Исходя из этого определения - куча play каждый по своим группам, но в одном playbook. Результат failed или unreachable от хоста в предыдущем play данного playbook можно определить? Include не использую
Artem
всем привет. подскажите пожалуйста, есть ли бест практис для завершения плейбука с ролями? делаете ли вы финальную роль отдельную? для проверки октрытых портов, добавление в крон и так далее?
Artem
что ещё может пригодится?
inqfen
Не надо ансибл в testinfra превращать
inqfen
Те таски, которые не прошли успешно - и так упадут. А если ты хочешь тестить инфраструктуру, для этого есть специализированные вещи
inqfen
Ансибл в том же testinfra может быть тем, через что происходит выполнение тестирования
Artem
Не надо ансибл в testinfra превращать
ок. а если нужно к примеру создать 3 крон задания. и проверить просто что 2 порта открыты и запущены. зачем городить ещё что-то? не правильно ли бы было вынести это в 1 завершающую роль?
inqfen
2 порта открываются как?
Artem
nginx
inqfen
И что ты имеешь в виду под открыты? Есть сокет, сокет есть на определённых интерфейсах, ip:порт доступен из определённого места?
inqfen
Ну стукнулся ты ансиблом на локалхост, там 80 отвечает, а со внешки не ответит, потому что фаерволл
inqfen
Или наоборот локалхост он не слушает, а другой интерфейс слушает
Artem
мне достаточно знать что они доступны вообще. хотя бы локально
inqfen
Nginx не через ансибл поднят?
Artem
через него. но там через костыль. из сорцов. и тока не кидайте помидорами. собирался он с command:
inqfen
Если через него - то там будет слушаться тот порт, который у тебя в конфиге
Artem
правильно. там 182 и 183 порты
Artem
вот просто хотелось бы проверить что они запущены
inqfen
через него. но там через костыль. из сорцов. и тока не кидайте помидорами. собирался он с command:
Ну вот тебе и ответ, неизвестно что твой command возвращает в stdout и stderror
inqfen
Переделай его на нормальный старт и не надо ничего проверять
Artem
проблема в том что это кастомный nginx, с какими-то либами своими. и когда я запускаю их собранный nginx, он стартует с конфигом. но эти порты не всегда доступны. нужно ещё раз делать ребут и тогда они открываются. именно это я и хотел автоматизировать
UglyKoyote
Ребут нжинкса или сервера?
UglyKoyote
А если залипнет в процессе ребута, ну бывает и такое - как хендлить? ещё костыль ставить?
UglyKoyote
кмк тут ансибл уже не причем, надо руткоз искать - почему нжинкс не сразу стартует. но это уже история для другого чата
inqfen
И выглядит это тогда как задача для monit или сорт оф
Artem
да вы правы. запарился я с их сборкой nginx. но мне предстоит этот сетап на 1+ новый сервер в неделю ставить. не знаю как иначе автоматизировать
inqfen
Или хотя бы нормального workaround
inqfen
Хоть через monit, но явно это не к ансиблу
Artem
понял. спасибо. я потому и спросил, что казалось что задача не правильная
Artem
спасибо за помощь
Ivan
Коллеги, добрый вечер. Просветите если не сложно. Когда стоит начать использовать awx ?
inqfen
Сегодня в 23:48
Ivan
На каком этапе точнее.
Ivan
Так и думал 😅
inqfen
На каком этапе точнее.
А кто тебя знает, может и никогда, твоя же инфра
inqfen
Вот как плохо без него, тогда и начинай
inqfen
Может никогда плохо не будет и он тебе и не понадобится
George
Лучше в 23:59:59
Tadeusz
лол
Леонид Леонидович
04:20
Artem
подскажите ещё плз такой момент. делаю: - name: checks if nginx is installed stat: path: '/usr/local/nginx/sbin/nginx' register: nginx_result теперь приходится во всех 10 последующих тасках добавлять when: not nginx_result.stat.exists. можно ли как-то остановить выполнение роли если файл есть?
Ivan
Делаешь из тасков blocks и вешаешь на него один whens
Artem
Делаешь из тасков blocks и вешаешь на него один whens
спасибо большое, плохо быть дурным, совсем забыл про них
Artem
ты пакет так и не собрал и костылишь вокруг энджиникса?
Ага, но я уже сделал Сборку через ансибл, при помощи make и command. Разбил на три таска и добавил проверки. Rpm пакет я собирал, Но там слишком много нюансов, Я не стал заморачиваться
Anna
спасибо большое, плохо быть дурным, совсем забыл про них
Ещё вариант, если тачки в tasks/main.yml, сделать отдельный файл nginx.yml, имя по смысловой нагрузки. И включать этот файл с тасками в основном main.yml при условии when....
Anna
include_tasks