George
Терпимое. Фикстура на 3 строчки.
Аннигилятор
Приветствую! Подскажите, можно ли выполнять таску не паралельно на всех хостах сразу, а последовательно и с задержкой? Есть список хостов, и нужно по очереди с задержкой команду выполнить.
George
serial: 1, про задержку не скажу.
Аннигилятор
serial: 1, про задержку не скажу.
это будет выполнтять последовательно?
George
Да. Оно для этого и придумано.
Аннигилятор
понял, спасибо)
Аннигилятор
просто в команду добавлю sleep, мне в принципе этого хватит
Rostislav (aka RosT)
А зачем тут ансибл? 🤔 это уже мониторингом пахнет
Все верно, только мониторинг еще строится, а тут вроде как пару часов и ты вооружен :) Перенесем конечно
Full
Народ, в общем, хочется странного, наверное. Суть токова... А что, если вместо хостов в инвентори использовать другие сущности? Ну вот например, есть домен, example.com. Нужно для него настроить реверс-прокси и бэкенды. И вот идея в том, чтоб основными сущностями были бы эти домены, а их переменные описывали, как их нужно настроить. А включая эти домены в группы, можно было бы управлять тем, на каких хостах нужно производить настройки. Или с ДНС аналогично - настроить мастера и слейвов к нему прицепить.
Full
Точно ты сказал - странное.
Я за тобой повторяю :)
Sergey
Объектная модель Ansible предполагает, что у тебя есть хосты и группы. Чем более общие признаки описаны в группе, тем выше она в иерархии вложенности (самая высокая - all).
Sergey
А домены - ну они же не живут в вакууме, они обслуживаются веб-серверами.
Full
Это то понятно. Я размышляю о более удобной организации инвентори. Ну вот если нужно раскатать домен по ДНСам - я думаю о такой сущности, как домен, в первую очередь. Поэтому и мысль такая приходит - перевернуть все вверх ногами. Потому что, например, если мне нужно перенести домен в другое место - это либо копипастить кусок ямла куда-то при традиционном подходе, либо сменить группу для некой сущности.
Full
Плюсом к этому, все в одном месте. Т.к. при традиционном подходе мне нужно будет описывать домен в разных местах - для этого хоста - одно (мастер зона), для другого - другое (слейв).
Sergey
Плюсом к этому, все в одном месте. Т.к. при традиционном подходе мне нужно будет описывать домен в разных местах - для этого хоста - одно (мастер зона), для другого - другое (слейв).
Это больше к твоим внутренним вопросам организации данных. Тут всё просто: хочешь поиздеваться над собой - пишешь vars-плагин. хочешь потратить минимум времени - продумываешь inventory.
Full
Я и пытаюсь продумать. Мне дико не нравится описывать одно и то же в разных местах.
Я и твой кот
Почему домену не быть ролью?
Я и твой кот
Даже не так. Почему домену не быть набором плейбуков, использующих шаренные роли?
Full
Можно пример? Я пока не понимаю, как это должно выглядеть.
Jungo
добрый вечер! скажите пож-та можно ли поменять алгоритм выполнения роли на несколько хостов не последовательно таскный а последовательно рольный?
Я и твой кот
Можно пример? Я пока не понимаю, как это должно выглядеть.
В гите прямо рядом с кодом сайта на домене храните плейбуки и кастомные роли. Стандартные общие роли грузите с локального галакси сервера.
Full
А, примерно понял. У меня немного другая история. У меня нет проекта типа сайт, домен, и т.п. У меня есть проект типа NS'ы, которыми нужно управлять. Там что-то за полста доменов, и указывают записи в этих доменах куда попало.
Я и твой кот
Я и твой кот
Вам, как админу днс, не принципиально же, какие домены вам заводят. Вы предоставляете сервис, и всё. Сайтостроители сами пусть записи создают/удаляют.
Full
Сайтов нет. :) А под каждый домен городить свой репо - ну такое. Раскидать по разным файлам - идея хорошая.
Я и твой кот
DNSaaS для бедных. Вы даёте API (или плейбук стандартизированный), другие пусть пользуются.
Я и твой кот
Если кто-то забудет NS/SOA прописать - ну их проблемы. Если кто-то с кем-то доменами пересечётся - выплюньте ошибку API (плейбуки).
Full
Нет других никого. В смысле, нет таких, кто бы даже веб-морду освоил. Я тут хочу самому себе немного жизнь упростить, не более. Даже на управление этим руками уходит час в месяц, от силы. Просто если добавлять домен, то мороки мелкой много - а создай файл зоны, а пропиши его тут, а пропиши на слейве, а пропиши в request policy, а еще вьюхи разные. Ничего военного, но я эту рутину не люблю. А так можно будет и от рутины уйти, и история появится.
Я и твой кот
API для бедных: файлики строго определённого формата пусть на sftp/ftp скидывают, а вы их парсите, делаете записи/обновления, и в ответ кладёте файлик с SUCCESS или FAILURE с описанием.
Full
Формата описания зоны, например. :)
Я и твой кот
Есть инфоблохи и другие коммерческие dns, там web-ui и всё красиво.
Я и твой кот
Формата описания зоны, например. :)
СЛОЖНА! Попроще что-нибудь :)
Full
csv. У ансибла даже есть лукап для него. Я когда-то давно уже начинал это делать.
Jungo
интересно - файл есть но при этом ансибл говорит что нет https://pastebin.com/WbSyhTiH
Я и твой кот
Можно оба из экселя экспортировать на smb файловую шару, в эксельке минимальная формочка.
Full
Или tsv.
Или так, да. И там каждый домен был в отдельном файле описан. И шаблоны зон с инлюдами и наследованием. Все сложно было.
Full
Так что даже ямл подойдет, при всей моей ненависти.
Grek 🇺🇦
Тогда пара глупых вопросов: Пользователь в плейбуке и от которого делаете ls один и тот же? Хост на котором ищете ls-ом и на котором прогоняет плейбук один и тот же?
Sergey
интересно - файл есть но при этом ансибл говорит что нет https://pastebin.com/WbSyhTiH
Вот тебя в имени файла апостроф и скобка вообще никак не смущают, так ведь?
Ivan
Подскажите пожалуйста кто сталкивался и решил такую проблему c apt модулем? https://pastebin.com/raw/mF35ypFp Плейбук накатываю с виртуал енва, из под мак ос на свежую убунту 20.04 ansible 2.9.11 Гугление навело на старый ищью, но не помогло
Ivan
Более детальный вывод - https://pastebin.com/raw/64M22Bi1
Ivan
и сам плейбук на котором падает https://pastebin.com/raw/8kE02zeu Комментировал первые блоки, падает так же на следующих с модулем apt
Vladislav 👻
Не используйте 3.8 Пропишите интерпретатор для хоста
Ivan
Не используйте 3.8 Пропишите интерпретатор для хоста
а какую версию Python3 посоветуете тогда? интерпретатор прописал в хосте b3 ansible_host=10.10.0.3 ansible_user=det ansible_ssh_private_key_file=files/ssh/personal ansible_python_interpreter=/usr/bin/python3
Vladislav 👻
3.7, на 3.8 что-то многое криво работает
Ivan
3.7, на 3.8 что-то многое криво работает
а я могу указать версию при сознании виртуаленва если в системе нет допустим 3.7? вот так? virtualenv --python=/usr/bin/python3.7 env ибо ругается FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/python3.7'
Vladislav 👻
В том числе, да
inqfen
Берешь виртуалки и начаинаешь настраивать полностью ансиблом. Ну или на работе, что что сейчас делаешь руками и оно подходит под его использование - перестаешь делать руками
Ivan
Не можете, нужно поставить
Поставил 3.7 создал на его базе виртуаленв по команде выше, внутри виртуаленва выводит python --version Python 3.7.3 Но вот по ансиблу ошибка к сожалению та же самая Не помогло
Vladislav 👻
Судя по варнингу, неподхватился интерпретатор
Ivan
Даже понижение версии ансибла до 2.7.3 с 2.9.11
Vladislav 👻
И инвентори какой-то странный
Я и твой кот
Туториал задач? А какие реальные задачи чтоб их брать?
https://github.com/Asgoret/test_tasks/blob/master/Test%2010/README.md
Vladislav 👻
И еще, не помню почему, но я отказался от виртуаленва для ансибла
Я и твой кот
Туториал задач? А какие реальные задачи чтоб их брать?
https://github.com/Asgoret/test_tasks/blob/master/Task%203/README.md
Я и твой кот
Ansible в обеих задачах. Пожалуйста, решайте.
Я и твой кот
Хотя это не менторство, конечно.
Ivan
И еще, не помню почему, но я отказался от виртуаленва для ансибла
о_О интересно ведь почему, мусора то меньше вроде как а ошибка все таки поменялась немного https://pastebin.com/raw/TLtkatX8 и на всякий случай попробовал без виртуаленва, - та же ошибка что и последняя
Anonymous
https://github.com/Asgoret/test_tasks/blob/master/Test%2010/README.md
А балансировка нжиксом на чем основывается? По количеству запросов? Или по загруженности процессоров серверов? А почему нельзя вместо вм взять контейнеры
Я и твой кот
А балансировка нжиксом на чем основывается? По количеству запросов? Или по загруженности процессоров серверов? А почему нельзя вместо вм взять контейнеры
Да это тестовое с собеседования. Практического применения особо не несёт. Призвано показать знания в т.ч. Ansible.
Anonymous
Там у него в задании: nginx - webserver для phpfpm, как и apache с modphp, балансировка на haproxy/varnish.
тоесть надо решить задачу строго определенными инструментами?
Dmytro
тоесть надо решить задачу строго определенными инструментами?
Ну это лучше у парня того спросить, но думаю да
Anonymous
и на собеседованиях дают типа таких задач?
Dmytro
и на собеседованиях дают типа таких задач?
Видимо ему "домой" задали, почему бы и нет?
Dmytro
Мне только не понятно выбор между varnish & haproxy, это два разных инструмента