manefesto
мне он не нужен =)
Fedor
да там несложо
Даня
у меня на там только дженкинс живет))) спокойно)
Даня
но дело говоришь
Fedor
а дженкинс роли есть какие-нибудь адекватные? хочется его тоже в расходный материал превратить, вместе со всеми воркерами
Даня
ну я педалил на днях с плагинами, кредами и юзерами + dsl для джобов
Даня
но оно все такое хреновое... половина сделана через url POST
Даня
т.к. я не захотел морочить голову с кастом плагинами для ансибла
Fedor
если апи постоянное, тогда почему и нет. скорее всего, те плагины делают то же самое
Даня
вот щас делаю создание квм через либвирт и попутное добавление воркера
Даня
угу
Даня
я так до конца и не понял, как настроить плагин из коробки
Даня
приходится руками тыкать после пробежки ансиблом
Даня
до вторника надо допилить))))))
Fedor
может, есть какой-нибудь интерфейс у самого дженкинса, эмулирующий кнопкодав. например, какой нибудь рест апи или как его там.
Даня
ну да, я как раз через рест и делаю
Даня
находил скрипты на груви написанные
Даня
но там столько кастома - хрень разберешь
Fedor
поищи методы, покопайся в коде плагина, вдруг он чего туда экспортирует
Fedor
и попробуй подёргать за ниточки
Даня
получается ты скармливаешь json и делаешь post в api
Fedor
угу
Даня
хм, а я как раз подобное нашел что-то
Vadim
Roman
подскажите как лучше извратнуться: надо тестить плейбук на федоре и центос
но есть только 4 гига оперативы - ВМ тяжело поднимать, вот думаю если в докере их поднять они же идентичны будут "железной установке"?
bebebe
Nklya
нормальное тестирование в докере получается, и быстрее и проще.
Nklya
кроме совсем уж критичных вариантов.
И инит с системд нормально работает относительно
Vadim
systemd будет работать с CAP_ADMIN, а вот кернел будет хостовый
bebebe
зависит от плейбуки
bebebe
что она делает, если ставит пакеты и правит файлики - то вполне
Roman
и еще вопрос, видел плейбуки где чуть ли не под все дистрибутивы сервис развертывают (deb/rpm/etc)
это вообще нормальная практика? это же долго отлаживать и сложно такую разношерстную инфраструктуру поддерживать
Firestalk
Нормальная, если такая задача
Firestalk
Таким образом относительно легко мигрировать на новый дистрибутив, например
Alex
Alex
Дистры в докере поднимаются и там отлаживается, нагрузка не оч большая. Но вот матрицы тестов быстро не прогнать без ресурсов. Поэтому ci/cd для ролей дольше проходит из-за тестов
Alex
Регрес тесты полюбил
Nklya
Вопрос в том, нужно ли это всегда.
И с этим же есть проблема когда юзаешь опенсорсные роли. Часто они очень ебанутые получаются из-за желания попасть во все дистры
Alex
Alex
Меньше делать, меньше думать
Roman
переписываю playbook на loop, заодно выношу список пакетов для установки в переменные (вместо with_items)
вопрос: можно ли в один модуль package засунуть несколько списков в зависимости от условий?
пример: ставим список пакетов "basic_list", если определна переменная "admin" добавляем к нему список "admin_list"
Sergey
1. списки ты можешь складывать
2. тебе не нужна вспомогательная переменная: прибавляй admin_list | default ([])
Roman
смысл то такой был - если это рабочая станция разработчика, вот тебе еще пачка пакетов, а обычному юзеру ставим базовый набор
Roman
и чтобы два раза модуль не вызывать хотел в одну задачу засунуть с условиями
bebebe
nixos такое делается из коробки
Sergey
ну да.
для разработчика в host_vars будет определён список доппакетов.
Roman
Alex
ep4sh
Подскажите, делаю так:
tasks:
- set_fact: pkgn="httpd"
when: ansible_os_family == "Redhat"
- set_fact: pkgn="apache2"
when: ansible_os_family == "Debian"
- name: start apache
service: name="{{ pkgn }}" state=started
Но ругает меня непутёвого Ansible, говорит что не определена переменная:
The task includes an option with an undefined variable. The error was: 'pkgn' is undefined
Пробовал:
service: name="{{ pkgn }}"......
service: name=pkgn ....
service: name={{ pkgn }} ....
ЧЯДНТ?
Alexey
pkgn: "apache2"
Alexey
В set_fact
Vadim
ansible_os_family вроде неправильно стоит
Vadim
Лучше when: if pkgn is defined
ep4sh
pkgn: "apache2"
tasks:
- set_fact:
pkgn: "httpd"
when: ansible_os_family == "Redhat"
- set_fact:
pkgn: "apache2"
when: ansible_os_family == "Debian"Тот же эффект)
Vadim
ep4sh
сейчас проверю, спасибо
Vadim
И os family лучше проверить - оно вроде RedHat
Alexey
Alexey
ep4sh
да)
ep4sh
все есть, проверял ad-hoc
ep4sh
есть что-то типа области видимости?
Alexey
Посмотри debug что в ansible_os_family заодно, мож реально несовпадает, поэтому и условие не срабатывает
ep4sh
и apache установлен, но не запущен
ep4sh
tasks:
- set_fact:
pkgn: "httpd"
when: ansible_os_family == "Redhat"
register: pkgn
- set_fact:
pkgn: "apache2"
when: ansible_os_family == "Debian"
register: pkgn
- debug:
var: pkgnTASK [debug] **************************************************************************************************************************
ok: [194.222.98.28] => {
"pkgn": {
"changed": false,
"skip_reason": "Conditional result was False",
"skipped": true
}
}
ep4sh
верно сделал ли я?
Alexey
Да, он тебе явно говорит, что переменная не определена, потому что условие не сработало
Alexey
И register: pkgn - лишнее, ты её определяешь через set_fact и так
ep4sh
- debug:
var: ansible_os_familyTASK [debug] ************
ok: [194.222.98.28] => {
"ansible_os_family": "RedHat"
}
Alexey
ep4sh
Alexey
И os family лучше проверить - оно вроде RedHat
ep4sh
блааа))
ep4sh
case-sens)))
ep4sh
попался))
ep4sh
ахахха
Alexey
ep4sh
спасибо всем!!
Alexey