Anonymous
м?:)
похоже разобрался уже. кажись, он просто выполняет модуль обычным execve() или подобным с передачей первым аргументом имени файла в котором лежат параметры. я думал посложнее будет
Navern
хз, надо код почитать=) ты стрейсом смотрел? разные модули?
Anonymous
ну в доке так написано, проверю уже завтра. стрейсом ещё не смотрел
One
камрады, что прочитать по хранению ssh ключей? бестпрактис интересует
Womchik
публичных?
One
для доступа к серверам
Andrey
chmod 400 ~/.ssh/id_ed25519
Andrey
вот лучший бест практис
Andrey
ну и копия на флешке в сейфе конечно
Andrey
и пароль там же - а то я вот тут давеча продолбал - было очень смишно
Igor
2 флешки
Igor
2 сейфа
Igor
2 бумажки
Igor
на разных континентах =)
Igor
и 2 человека, один владеет одним сейфом, другой другим )
Dima
Dima
на двух разных континентах хранить плейбуки - тож вариант, например, иметь свой gitlab + иметь бесплатный приватный bitbucket, вполне отказоустойчиво.
Dima
вот лично я практикую запихать ключи в отдельный файл, ansible-vault encrypt ему, и дергать как-то вот так: https://github.com/lastsky/ansible/blob/master/playbook-copy.yml#L28 пока проблем не было.
Alf 🙀
Igor
Denis 災 nobody
Anonymous
гугл не образец надежности кстати
Womchik
а кто образец?
Anton
Привет. Есть две роли. Одна является зависимостью для другой. В роли верхнего уровня есть хендлер. Хочется понять, произвела ли зависимая роль какие либо изменения, и если да, то вызвать этот хендлер. Есть ли какие-то которые варианты для этого кроме как через лишние глобальные переменные? Или может быть в вообще странное хочу?
Dmitrii
Лично я не вижу других вариантов кроме как дефайнить переменную
Арсен
Странного хочешь. Роли должны быть самостоятельны.
Anton
Не очень понимаю, что значит самостоятельными в данном контексте, если честно. Роль в итоге выполняет законченное осмысленное действие, но часть своего функционала она берет из другой роли. Разве не это ли то, ради чего роли и затевалось - повторное использование?
Sergey
Alf 🙀
Anton
Ну то есть механизм зависимостей ролей это моветон, правильно я понимаю?
Sergey
именно. тогда точно странного желаешь, ибо роль = самостоятельная штука. зависеть от внешних компонентов = ок, а переиспользовать код другой роли с влезанием под капот != ок
Anton
Alf 🙀
Вот надо вам сайтик задеплоить, роль которая будет сайтик выкладывать будет зависит от роли которая нгинкс привозит что логично
Alf 🙀
А когда у вас роль от другой роли зависит на уровне поменялась ли строка в конфиге то что-то не так получается. Имхо.
Sergey
есть такой вопрос и ест ьтакое объяснение -
http://stackoverflow.com/questions/22649333/ansible-notify-handlers-in-another-role
для незнакомых с английским - для этого используются механизм хэндлеров, в том числе можно вызвать хэндлер другой роли
Alf 🙀
Ааа ну тут про другое получается. А то я придумал себе.
Anton
То есть мне скорее видится роль как вызов булевой функции, мне все равно что там внутри, но отработал и скажи, да или нет, а роль- мама уже сама дальше разберётся :)
Sergey
не, здесь придётся явным образом прописать в роли, которая меняет код, на таске обновления - notify nginx.reload
Anton
Sergey
Sergey
Роль - лишь набор заданий, а результат выполнения отдельного задания совсем не обязательно булевый.
Sergey
Роль с кодом сайта имеет в зависимостях nginx. Следовательно, роль nginx будет вызвана ДО роли с кодом сайта. Следовательно, роль с кодом сайта имеет полное право вызывать и ссылаться на хэндлер nginx.
Anton
Только роль с кодом не зависит от сервера. И не должна, на мой взгляд. Мне просто подумалось, что было бы круто, если подключение роли в итоге имело статус, примерно как волнение таска.
Sergey
Позволю себе заметить, что такая объектная модель расходится с объектной моделью Ансибла, поэтому в контексте заданного вопроса - да, имеет место желание странного.
Sergey
Если бы роль с кодом сайта не нуждалась в веб-сервере, то и разговора бы не было, так? Код бы мог работать самостоятельно, без этих ваших энджинксов. А получается-то наоборот! Типа "есть прямая зависимость, а хочу сделать вид, что её нет".
Alf 🙀
Sergey
Дык до меня расписали всё - http://docs.ansible.com/ansible/playbooks_roles.html.
Есть задания, есть роли, есть пьесы (plays). Задания составляют роль, роли составляют пьесу.
Фактически твоя пьеса состоит из указаний: узлы (hosts) такие-то исполняют роли (hosts) такие-то.
А уже эти пьесы собираются в плейбуки (я хз как толком перевести, тупо "сборники пьес", что ли)
Anonymous
хз, надо код почитать=) ты стрейсом смотрел? разные модули?
ну кароч да, вызывает как исполняемый, первым аргументом передаёт файлик с параметрами, параметры в ансибловом стиле (puk=perd), но если в модуле есть WANT_JSON (судя по всему, парсит наличие текста в любом месте), то в файле оказывается жсончик
Dmitry
Dmitry
То есть ставит веб-сервер одна роль, да. Которая в зависимостях. А виртуальный хост, к примеру, создаёт другая, вот эта - которая только что раскатила бэкенд.
Dmitry
Чё? :)
Anton
А? )
Anton
Я не спорю с тем, что ты написал. Но скорее немного уточняю ситуацию :) У нас есть роль, которая содает виртуалхост( на самом деле не совсем, но суть примерно такая же ). Перед тем как установить виртуал хост этой роли нужно установить некоторый код. Эта операция установки когда используется в разных местах, и для нее выделена отдельная роль. Соответсвенно получается, что роль конфигурации бэкэнда зависит от роли, которая раскладывает код. Но получается так, что роль бэкэнда слегка зависит от роли установки кода. Собственно мне и хотелось понять, как эту зависимость лучше всего организовать. Но есть верочтность, что моя вот эта ар[итектура "Дичь" (c) и тогда я хочу понять, как правильно!
Что-то я много букв пишу сегондя :)
Oleg
Уважаемые сэры, посоветуйте опенсорцную вебморду для Ansible?
Есть вот Semaphore, но оно выглядит как-то сыро. В гугле советуют попробовать запускать анс из Rundeck, но ведь оно не вточено спецом под анс это вообще что-то отдельное
Анальные саасы и прочий кошмар просьба не советовать, дело будет происходить в закрытой криптоанархичной локалочке для инхаус разработки 😊
Шпасибо, с меня как всегда ничего
Oleg
Я хочу от морды, чтобы для нее было удобно было делать плагины.
Нужно чтобы админы заходили, жмякали кнопки, которые будут где-то там далеко дергать энсибл мастер, который скажем будет ворочать кластерами
И хочется чтобы эта морда искаропки знала об энсибле - понимала и хорошо отображала его логи, снимала метрики и рисовала на графиках, итп
Короче, всё как у людей чтобы было
Oleg
Подошло бы купить Tower, но нельзя, можно только опенсорц фриваре
Anonymous
>чтобы админы... жмякали кнопки
советую сменить админов
Anonymous
почему?
Andrey
потому что например тогда с "секретами" проще оперировать
Andrey
у человека нет доступа к плейбуку
Andrey
не всё должен делать девопс или админ
Andrey
есть менее квалифицированный персонал
Anonymous
ну речь шла о том, что админы должны кнопки жмякать. если кнопки должен жмякать не админ, тогда я бы спросил, а зачем это должен делать не админ (на самом деле не спросил бы)
Oleg
когда у человека на поддержке под сотню проектов одновременно, ему иногда удобней жмякать кнопочки с хорошо продуманным UI, иначе он просто шизонется и отправится пускать слюни в дурке
Anonymous
как по мне, проще скрипт/алиас накорябать, чем ещё и браузер открывать, но дело привычки наверно
Oleg
так тебе придется название этого скрипта набивать. В голове держать все названия. Придумать какую-то схему наименований, которой фанатично придерживать. Наизусть заучивать сотни комбинаций каких-то флагов и настроечек, которые у каждого проекта свои
а так можно например, вывести на дашборд 100 на 100 элементов все текущие проекты, и цветом красить состояние проблем в них. И когда там что-то стало мигать оранжевеньким, ты в 1 клик можешь что-то там починить (потому что на квадратике есть основные кнопки "сделай мне зашибись")
Dmitry
Я не спорю с тем, что ты написал. Но скорее немного уточняю ситуацию :) У нас есть роль, которая содает виртуалхост( на самом деле не совсем, но суть примерно такая же ). Перед тем как установить виртуал хост этой роли нужно установить некоторый код. Эта операция установки когда используется в разных местах, и для нее выделена отдельная роль. Соответсвенно получается, что роль конфигурации бэкэнда зависит от роли, которая раскладывает код. Но получается так, что роль бэкэнда слегка зависит от роли установки кода. Собственно мне и хотелось понять, как эту зависимость лучше всего организовать. Но есть верочтность, что моя вот эта ар[итектура "Дичь" (c) и тогда я хочу понять, как правильно!
Что-то я много букв пишу сегондя :)
наизнанку вывернул просто, мне кажется
Andrey
Andrey
и всё это конечно можно скриптами / кроном сделать самому
Andrey
но хочется готовый продукт, слаженно работающий
Andrey
а не делать велосипед