@pro_ansible

Страница 438 из 625
Maksim
12.04.2018
11:40:37
а причем переменные и роли ?

Dorian
12.04.2018
11:42:26
а причем переменные и роли ?
Нужно вызвать в плейбуке роль. Которая должна выполнится на хостах другой роли

Google
Maksim
12.04.2018
11:42:57
это как ?

для какого кейса такой изврат нужен ?

Dorian
12.04.2018
11:43:46
Например выполняется роль www, нужно вызвать выполнение роли haproxy на этих же хостах. Это решается import_role.

Кейс простой, переиспользование плейбуков

Vadim
12.04.2018
11:44:19
мы часто юзаем import_role и УМВР с переменными

часть в инвентори, часть в group_vars

Sergey
12.04.2018
11:44:37
Например выполняется роль www, нужно вызвать выполнение роли haproxy на этих же хостах. Это решается import_role.
это не решается через import_role. это решается включением роли в спсиок для применения на хосты.

Maksim
12.04.2018
11:45:18
children я так понимаю

Dorian
12.04.2018
11:45:29
это не решается через import_role. это решается включением роли в спсиок для применения на хосты.
Тогда она выполнися со всеми хостами. А если мне этого не нужно?

часть в инвентори, часть в group_vars
А которые в инвентори подхватываеются хостами для которых вызывается импорт?

Maksim
12.04.2018
11:46:14
- host: webservers[all] - roles: - http - hosts: webservers[balancer] - roles: - haproxy

Vadim
12.04.2018
11:46:54
А которые в инвентори подхватываеются хостами для которых вызывается импорт?
да, ну опять же - часть нужно брать через hostvars. Показывай код и лог, так проще будет

Google
Dorian
12.04.2018
11:46:56
ограничивай хосты
Да, можно через лимит

Maksim
12.04.2018
11:47:10
беспрактис гласит что нужно хосты по группа разбивать

лимит не то

и не торт

- hosts: bd roles: - backup_db - hosts: master roles: - update_master - hosts: slaves roles: - update_slave

я так делаю

Dorian
12.04.2018
11:50:23
У меня так же

Maksim
12.04.2018
11:51:12
тогда нахер лимиты, просто переосмыслить и сделать правильно

может я не прав

Dorian
12.04.2018
11:52:18


Maksim
12.04.2018
11:52:50
ты в один плейбук всё пихаешь ?

Dorian
12.04.2018
11:53:04


Maksim
12.04.2018
11:53:08
тебя сейчас тапками закидают

Dorian
12.04.2018
11:53:19
В смысле в один ?

Maksim
12.04.2018
11:53:32
тэги как бы моветон

почитай про блоки

Dorian
12.04.2018
11:54:13
Блоки есть

Использую их активно

Тэги нужны для обновления конфигурации.

Nklya
12.04.2018
11:55:13
нано))

Google
Maksim
12.04.2018
11:56:05
я например в плейбуке использую несколько ролей, без тегов то есть плейбук update_prod у меня вызывает две роли - backup_db - update_prod первая бэкапить БД вторая бэкапит исходники и собирает мой софт тэги вообще не использую

типа лучше иметь 10 плейбуков чем 10 ключей у одного плейбука

я всё это дело вкорячил в awx и отдал на откуп прогерам

Dorian
12.04.2018
11:58:21
А как дизастер рековери?

Maksim
12.04.2018
11:58:33
что это такое, слова низвестные

Dorian
12.04.2018
11:58:35
Будешь 10 плейбуков на проект запускать ?

Maksim
12.04.2018
11:58:53
зачем ?

Dorian
12.04.2018
11:59:00
Это когда все наебнулось

Maksim
12.04.2018
11:59:33
ну наебнулось, но через теги импортить роли меня как то не радует совсем

создам роль "restore_from_hell"

Dorian
12.04.2018
11:59:58
Я стараюсь придерживаться универсальности в плейбуках. Чтобы можно были и конфигурить и деплоить

Maksim
12.04.2018
12:00:00
jq

ну твоё дело, только это в итоге делает твои плейбуки менее читаемыми

через полгода не поймешь что сделал

Sergey
12.04.2018
12:01:11
Да, можно через лимит
фу-фу. для этого группы существуют.

Maksim
12.04.2018
12:01:22
о чем и речь

я отказался от лимитов и тэгов

делают сначала hosts:all а потом через лимит ограничивают

не надо так

https://www.meme-arsenal.com/memes/d90178d4037c0596dbfcb48283b70497.jpg

Google
Maksim
12.04.2018
12:04:07
я кстати так раньше и делал как ты говоришь

тэги и extra-vars рулили

Nklya
12.04.2018
12:04:46
И как тебе теги мешают, если их просто можно не использовать?

Dorian
12.04.2018
12:05:12
Как без тэгов можно рулить конфигурацией ?

Я у freeseacher учился

Maksim
12.04.2018
12:07:25
ну бери меня к себе на работу. придем к консенсусу

Sergey
12.04.2018
12:08:49
я отказался от лимитов и тэгов
на мой вкус - почём зря. к примеру, у меня есть некоторый набор тегов фиксированный, который есть во всех ролях. таким образом я знаю, что любая роль, будучи запущенной с тегом restart, сделает рестарт сервиса, с configure - приведёт его конфиги к заданному виду, с install - установит сервис в систему, с prepare - штуки типа "притащить на хост толстый внешний архив" понятно, что почти всегда install,configure.

Maksim
12.04.2018
12:09:16
у меня видимо нет таких задач

Sergey
12.04.2018
12:10:46
у меня видимо нет таких задач
как говорится - YMMV. при наличии мешка сервисов, и если роли написаны однообразно - здорово помогает поддерживать хозяйство в актуальном виде.

Maksim
12.04.2018
12:11:11
пойду искать интересную работу

George
12.04.2018
12:21:51
Случайно на ноут приехал ансибл 2.5 Было смешно. include_role + delegate_to делают что сказали, но не там, где сказали. Прям как в анекдоте: Я сказал руку. Я сказал левую. Я сказал, накладываем гипс.

Maksim
12.04.2018
12:23:52
откатывайся

kevit
12.04.2018
12:27:35
господа, а много кто использует molecule ?
я использую, но подумываю перестать и использовать только линтеры напрямую в CI

George
12.04.2018
12:29:47
Сергей, о, расскажи почему. Я как раз думал её внедрять.

kevit
12.04.2018
12:30:30
@Nklya, не согласен. environment-specific переменные в inventory быть и должны. Например, если есть production & staging, то где хранить имя окружения?
create: ## Create an inventory for new environment mkdir -p inventories/$(name)/group_vars/all ln -s ../../../000_crossenv_vars 000_crossenv_vars mv 000_crossenv_vars inventories/$(name)/group_vars/all/000_crossenv_vars

и в каждом энве 001_local

kevit
12.04.2018
12:32:02
неисключено, это ваше IT весьма небольшое

Сергей, о, расскажи почему. Я как раз думал её внедрять.
моя идея была засунуть молекулу в гитлаб и прогонять в пайплайне коммиты

Google
kevit
12.04.2018
12:34:07
но есть нюансы например у нас билдеры докеризированы

Alex
12.04.2018
12:34:30
господа, а много кто использует molecule ?
я использую, смотреть тут - https://github.com/kharkevich/ansible-elastic-metricbeat

kevit
12.04.2018
12:34:34
и systemd превращается в небольшое приключение ( как пример)

начинаются странные вещи типа

kevit
12.04.2018
12:34:44
capabilities: - SYS_ADMIN privileged: true volumes: - /sys/fs/cgroup:/sys/fs/cgroup:ro provisioner:

Alex
12.04.2018
12:34:53
есть специальная магия для этого жеж

kevit
12.04.2018
12:35:00
я про это и говорю

слишком много магии

если нет норм интеграции (которой ни у кого нет)

а запускать ansible-lint можно и из того же пайпа

Vadim
12.04.2018
12:36:42
systemd не нужен privileged емнип, по крайней мере в центосе

George
12.04.2018
12:37:39
Я у себя добился, что проект полностью в lxc способен подняться. Хотя чистый прогон после коммита - жирновато.

George
12.04.2018
12:56:10
Несколько мест, где "контейнеры не сервера" обойдены простым when: ansible_virtualization_type != 'lxc' and ansible_virtualization_role != 'guest'

А дальше просто ansible-playbook -i staging -c lxc site.yaml и поехали.

Плюс container-bootstrap, который их создаёт.

- hosts: containers gather_facts: no connection: local tasks: - name: Creating container import_role: name: lxc_container tasks_from: create_container - hosts: containers gather_facts: no connection: lxc tasks: - name: Preparing container import_role: name: lxc_container tasks_from: prepare_container

сами роли копеечные. Создать контейнер с именем как inventory_name, да поставить python в raw-режиме.

Страница 438 из 625