Lamobot
Full
А. По-умолчанию там tty7. Это только при установке с mini. Со стандартного образа - все ок.
Потом после установки смотришь на экран - а приглашения нету. Я минут через 5 только понял, что tty не тот.
Lamobot
Vadim "Oxyd"
Full
GithubReleases
ansible/ansible tagged: v2.9.11
Link: https://github.com/ansible/ansible/releases/tag/v2.9.11
Release notes:
New release v2.9.11
Denis
Всем привет. Есть сервер приложений на WildFly Full 15, необходимые модули накатываются через wf_configurations.yml вида:
main-4:
core_modules: True
modules:
- { name: 'cs-mmt-client', version: '2.1.0' }
- { name: 'cci-mmt-impl-ear', version: '1.0.7.hf1' }
необходимо при изменениии версии или дополнении модулей произвести переустановку (установку).
Список установленных модулей можно запросить через jboss-cli на сервере.
Хотелось сделать максимально простое решение, но количество серверов меняется в большую сторону и это накладывает определенные ограничения.
Может кто сталкивался с подобными задачами и имеет "продуманное" решение.
NM
Как это ? :-) расскажите ?
NM
Я так и знал :-)
NM
Я про другое имел в виду, замержился код в Гите и тут же идет сборочка, вот что интересно в awx а не кнопочка update git in projects
citius
Доброго всем!
Вопрос по работе "Ansible + Gitlab-CI".
На данный момент сервер ансибла и сервер гитлаба это две разные ноды, не связанные никак друг с другом. Ансибл сейчас не задействован в процессе CI/CD, и используется в основном для конфигурации инфраструктуры. Сейчас плейбуки ансибла лежат на самом ансибле-мастере и выполняются оттуда вручную. Возникла необходимость часть плейбуков закинуть в гитлаб в отдельный репозиторий, чтобы разработчики могли сами какими-то определёнными действиями в гитлабе (коммит в ветку с плейбуком или ещё как) запускать некоторые плейбуки ансибла. Как я понял из статей и документаций, вариантов несколько может быть. Основные вижу такие пока:
1) На мастер-ноде ансибла настроить Gitlab-Runner (shell), и прописать его на ветки с плейбуками, ну и указывать в Gitlab-ci выполнение плейбуков через него;
2) Сделать отдельный Gitlab-Runner (shell), с которого будет доступ на мастер-ноду ансибла, и указывать в Gitlab-ci выполнение плейбуков через этот отдельный раннер;
3) В Gitlab-ci в ямл-файле напрямую прописывать выполнение плейбуков удалённо по ssh на мастер-ноде ансибла (но потребуется прямой доступ по ssh с гитлаб-сервера на мастер-ноду ансибла);
4) На сервере гитлаба развернуть ещё один ансибл-мастер, чтобы плейбуки там и выполнялись локальным ансиблом;
5) Использовать что-то типа AWX и т.п.
Как будет лучше и безопаснее сделать?
а что такое "сервер ансибла" в вашем контексте, если AWX у вас нет?
citius
но у ансибла ведь нет мастера
Михаил
Александр
но у ансибла ведь нет мастера
ну сервер управления по-другому если, в общем та машина, где установлен ансибл и выполняются плейбуки, с него же можно и просто адхок командами управлять и т.п. :)
citius
короче это просто аля бастион хост
citius
я спрашивал потому что по смыслу было так, как будто у вас там уже какая-то автоматизация есть
citius
в эксплуатации шелл раннера с ансиблом могут быть нюансы, т.к. могут быть пересечения по директориям (например /tmp будет один на всх), так имхо что лучше всего поднять докер-раннеры
citius
запечь образ с ансиблом и ключами, или доставлять ключи в пайплайне, и докер-раннерами и деплоить
NM
citius
AWX тоже конечно варик, но он достаточно тяжелый, кмк, для такой простой задачи
NM
NM
NM
Его ещё и ставить надо rpm or deb пакет а не контейнер, чтобы не огрести проблем в будущем
Александр
я спрашивал потому что по смыслу было так, как будто у вас там уже какая-то автоматизация есть
автоматизация деплоя кой-какая есть, но к ансиблу в данный момент она не имеет отношения вообще
сборка и деплой теста и прода реализован частично через Gitlab CI/CD пош-скриптами, т.к. значительная часть прода на .Net, другая часть - это бекэнды на Linux, но контейнеры не используются вообще сейчас
ансибл же используется сейчас только для создания конфигураций тестовых и продовых окружений (тупо виртуалок с настройками) как на Linux так и на винде
мой вопрос был именно как лучше сделать, чтобы уже готовые плейбуки ансибла по разворачиванию виртуалок могли бы запускать сами разрабы из гитлаба, не заходя при этом в сам ансибл
citius
citius
у меня были в эксплуатации шел раннеры долго, потом как съехали на докер - это сняло много головной боли
citius
доступ с раннера на твой бастион избыточен
citius
плейбуки же тоже в каких-то репах лежат у тебя
citius
соответственно в пайплайне можно их забрать и выполнить
citius
я собирал артефакты с ансиблом - архив с плейбуками и ролями, кидал в артифактори, и в пайплайне забирался этот артефакт
аналог коллекций из 2.10, бгг
citius
это сильно экономило время пайплайнов на скачивании ролей
citius
бастион лучше вообще оставь в стороне - автоматизацию на него накладывать - путь в бардак
citius
ну вот с этого и лучше начать
citius
а сделать потом деплойные пайплайны рядом будет уже просто
Александр
так а если я перенесу все плейбуки в гитлаб, запускать их буду с отдельного шелл-раннера (на котором тоже надо будет ставить ансибл и с которого, как я понимаю, нужно будет делать доступ на все узлы инфраструктуры), тогда мне уже не нужен будет этот типа "бастион", который сейчас есть
может тогда его самого в раннер переделать проще?
citius
не знаю что тебе проще, по эксплуатации шелл-раннеров я уже свое мнение высказал
citius
я бы в любом случае делал с чистого листа, даже и виртуалки с шел раннерами, денег это не стоит, а возможный старый бардак подчистит автоматом
inqfen
>запускать их буду с отдельного шелл-раннера
ну нинада
inqfen
И вообще иногда проще вместо хождения через бастионы раннер поднять в целевой инфре
inqfen
Но это уже не к ансиблу относится
citius
inqfen
Да выкинь ты этот шелл сервер и юзай докер экзекутор
Александр
я прост не совсем понимаю ещё что есть этот "бастион", про который вы говорите, надо покурить доки :)
у меня просто есть машина в самой инфраструктуре, на ней ансибл, и с неё же доступ к остальной инфре, где и требуется внесение изменений в инфраструктуру плейбуками
inqfen
Ну так создай раннер в той же инфре, на него докер экзекутор и путь он плейбуки и запускает
inqfen
А сами они все как положено в гите
George
Я пытаюсь подружить ansible-test с своими серверами. У меня есть модуль, которому надо become. В CI я его запускаю с --local и всё хорошо. Я не хочу --local на своей машине, я хочу на мою тестовую виртуалку. Но попытка вчитаться в --remote говорит, что там сплошной shippable. Кто-то делал коллекции, в котором интеграционные тесты можно гонять с помощью ansible-test и локально, и на CI?
Aleksey
я видел хак для молекулы что бы гонять тесты для коллекций на молекуле
Aleksey
хак не сильно стремный
Aleksey
ansible-test даже не знаю такого
George
ansible-test раньше был только для самотестирования ansible'а, а теперь его перекорёжили под коллекции тоже. (Появляется если поставить ansible pip'ом, из дистрибутивных его повыпиливали).
George
Даёт бесплатные sanity тесты (документация в модуле и т.д.). Умеет запускать unit-тесты, и с --local бесценен для интеграционных в CI. Но хочется поюзать и на своей машине.
Aleksey
да у меня пиповая версия. я никогда не обращал внимания на его наличие
Lamobot
George
Вообще, с коллекциями ощущение, что ansible 0.1. Сплошные косяки.
George
Если интересно поюзать, вот для sanity/юнит: https://github.com/amarao/collection_ip/blob/master/.github/workflows/ansible-test.yaml (обрати внимание на `working-directory`).
Aleksey
Aleksey
а инфры дофига пока не научились всё делать.
Aleksey
это как там... release early
George
Ну, ansible-test у них был всегда, просто раньше никому не нужно было интегрировать его с другими CI'ями или провайдерами. Либо --local, либо --docker, либо shippable-хаки. Мне кто-то рассказывал про runit-файл, и так можно, но уж очень уродливо. И с github'ом тогда не дружит.
Александр
Ну так создай раннер в той же инфре, на него докер экзекутор и путь он плейбуки и запускает
ну у меня сейчас так примерно по-колхозному: захожу на машину с ансиблом и запускаю плейбук-плейбуки (лежат там же на этой машине), этот плейбук мне на двух хостах Proxmox создаёт из готовых образов по пять виндовых и (или) линуксовых виртуалок, копирует на них нужные мне файлы, меняет необходимые файлы конфигураций, настройки доступа и прочее в зависимости от ситуации
а мне надо чтобы всё тоже самое, но чтобы плейбуки лежали в гите запускать типа из гитлаба
раннер с докер-экзекутором подойдёт для этого (докера как такового и контейнеров в инфре у меня сейчас нет)
George
О, у меня идея. --docker-privileged. У меня docker всё равно на виртуалке, а все мои модули не персистентные. Свою боль я ща решу, а вот системно вопрос остаётся...
inqfen
Александр
Подойдёт
а как лучше сделать в этом случае, чтоб плейбуки выполнялись самим этим раннером, или всё же чтобы этот раннер выполнял плейбуки на моей "старой" машине с ансиблом? (т.е. раннер с докер-экзекутором использовать просто как связующее звено между гитлабом и ансибл)
inqfen
Александр
Понял в целом, благодарю за помощь!
А вариант, когда ансибл ставится на самом сервере гилаб локально и оттуда же выполняются плейбуки напрямую без раннеров, то есть в ямл-файле ci сразу команда "ansible-playbook" и т.п. вообще имеет место быть, кто-нибудь так пробовал, или так не будет работать?
inqfen
NM
citius
citius
образно говоря - мешаешь мух в котлеты
Womchik
ppl, подскажите.
вот смотрю я модуль proxmox_kvm: в нём идёт вызов create_vm и если не было exception, то вызывается module.exit_json(changed=True …
это значит, что changed у меня всегда будет?
Lamobot
Александр
В общем тогда у меня такая схема в башке пока сложилась:
- переношу все свои работающие проверенные роли и плейбуки со "старой" машины ансибла в гитлаб, в отдельный репозиторий или в разные репозитории, по обстоятельствам
- на отдельной виртуалке настраиваю гитлаб-раннер с докер-экзекутором или с шелл-экзекутором
- прописываю-регистрирую это раннер в репозитории с плейбуками
- в ямликах ci/cd по определённым условиям, по коммиту с тэгом, например, прописываю выполнение того или иного плейбука на раннере
правильно я понимаю всё это дело или что-то упустил?
inqfen