@pro_ansible

Страница 425 из 625
Dorian
04.04.2018
12:16:35
и производные не лечтся

- /opt:/opt работает Сейчас проверю с кавычками

Vadim
04.04.2018
12:18:42
- "{{checkout}}:/opt/reporting"

Dorian
04.04.2018
12:19:15
целиком
спасибо! Видимо "":"" как словарь воспринималось

Google
Dorian
04.04.2018
12:19:19
- "{{checkout}}:/opt/reporting"
аха, спасибо

Ievgen
04.04.2018
13:27:55
@freeseacher ты помнится ругал что в 2.5 сломали наследование тегов include_*

Алексей
04.04.2018
13:28:26
да

Ievgen
04.04.2018
13:28:32
я только что поймал момент когда это наоборот офигенно

Алексей
04.04.2018
13:28:46
не сломали а привели в соответствии с виденьем

Ievgen
04.04.2018
13:29:02
ну не суть

допустим: tasks: - name: Run post deployment tasks include_tasks: "{{ item }}" with_first_found: - "roles/{{ service_role }}/tasks/post-{{ service_role }}.yml" - empty.yml tags: - skip_packer - post - always

тогда post.yml у тебя будет инклюдится всегда

ну если он есть

а вот таски в нем нет

не будут выполняться если не указан конкретный тег

так как раньше они бы отнаследовали always

это в принципе позволяет более сложную логику строить

Google
Sergey
04.04.2018
16:04:37
Подскажите пожалуйста: хост в inventory у меня например fe2, устанавливаю всё необходимое, настраиваю. разворачиваю проект и затем мне надо добавить fe2 в балансировку в nginx на lb (другой хост) - как лучше это сделать?

Дмитрий
04.04.2018
16:07:44
Добавить хост в конфиг и релоаднуть nginx

Sergey
04.04.2018
16:08:14
Добавить хост в конфиг и релоаднуть nginx
это понятно )) проблема в том - как выполнить задание на lb?

Дмитрий
04.04.2018
16:08:29
delegate_to: lb

Sergey
04.04.2018
16:08:59
delegate_to: lb
а каким пользователем оно ломанётся на lb?

я могу переопределить пользователя?

Vadim
04.04.2018
16:09:49
а каким пользователем оно ломанётся на lb?
тем который указан на хосте lb

Дмитрий
04.04.2018
16:10:04
Можно указать в inventory, можно для конкретной команды

Sergey
04.04.2018
16:10:59
тем который указан на хосте lb
а если у меня не описан lb в inventory файле?

Дмитрий
04.04.2018
16:11:04
В документации есть пример для haproxy http://docs.ansible.com/ansible/latest/user_guide/playbooks_delegation.html

Добавь его

Стандартная схема, когда в инвентори есть балансер и группа с бекендами

Sergey
04.04.2018
16:12:14
т.е. я правильно понимаю, что в инвентори-файле у меня должны быть описаны все подключения, хотя играю конкретную группу из него в которой нет этого lb?

Sergey
04.04.2018
16:13:09
а если у меня не описан lb в inventory файле?
ты придумываешь себе проблему - хочешь работать с сущностью, которой не существует в твоём инвентори (WAT?)

Дмитрий
04.04.2018
16:13:48
Да, в инвентори ты добавляешь все хосты которые у тебя есть в окружении. Обычно делают несколько инвентори для каждого из окружений, live, staging, local

Sergey
04.04.2018
16:13:50
подключения нужно формировать динамически, перечисляя все хосты из соответствующей группы (e.g. 'backends')

Sergey
04.04.2018
16:15:14
ок, т.е. у меня сработает связка: delegate_to: lb become: yes become_user: xxx

Дмитрий
04.04.2018
16:15:47
подключения нужно формировать динамически, перечисляя все хосты из соответствующей группы (e.g. 'backends')
В балансере - да, просто пройтись по группе и сгенерить конфиг для балансера

Google
Sergey
04.04.2018
16:17:09
В балансере - да, просто пройтись по группе и сгенерить конфиг для балансера
для балансерОВ, т.к. основная рабочая сущность в модели Ансибла - _группа_ хостов. И группа эта в общем случае может состоять даже из одного хоста.

Sergey
04.04.2018
16:18:10
В балансере - да, просто пройтись по группе и сгенерить конфиг для балансера
Генерация конфига - это не проблема - проблема именно была выполнить команду на другой сущности и под другим пользователем одновременно

Всем спасибо, пошел писать дальше ))

Дмитрий
04.04.2018
16:18:38
Не за что.

Denis 災 nobody
04.04.2018
17:04:35
как можно запустить автонастройку при первой загрузке ноды? Допустим, в кикстарте заполнили всякие переменные, а после ребута нужно запустить задачу 1 раз, и чтобы показывало прогресс. Через rc.local как-то не вышло

войти под рутом и запустить - не вариант )

центос7 и systemd если что

Denis 災 nobody
04.04.2018
17:07:19
https://www.freedesktop.org/software/systemd/man/systemd.special.html#reboot.target
уточнение: логин руту желательно до конца настройки заблокировать. И - см выше, нужен прогресс

и запуск ровно 1 раз

Denis 災 nobody
04.04.2018
17:08:05
есть вариант заменить руту шелл на скрипт, но это надо ввести пасс..

Алексей
04.04.2018
17:18:04
Sergey
04.04.2018
17:19:59
А еще подскажите - в какой переменной я могу получить имя оригинального хоста для которого играю playbook (что-то типа ansible_host или ansible_ssh_host), если сделал delegate_to 127.0.0.1?

Sergey
04.04.2018
17:22:33
inventory_hostname
точно, спасибо )

Denis 災 nobody
04.04.2018
17:25:26
Алексей
04.04.2018
17:25:49
ровно ожин раз на самом деле не бывает же. бывает до победного. а факт победы это флаговый файл /etc/my_superapp/init_done и убрать из опций запуска

Google
Алексей
04.04.2018
17:26:09
это как
это как password recovery делают

Denis 災 nobody
04.04.2018
17:34:35
это как password recovery делают
хм, сделали свою строку с дефолтом, а дальше? Отдельный runlevel?

ровно ожин раз на самом деле не бывает же. бывает до победного. а факт победы это флаговый файл /etc/my_superapp/init_done и убрать из опций запуска
нет, там всё должно поставиться и настроиться в 1 прогон, иначе переустановка и повтор. Есть нюансы..

Алексей
04.04.2018
17:59:51
а ранлевелы разве еще актуальная тема ?

Wom
04.04.2018
18:01:21
а почему нет?

Алексей
04.04.2018
18:01:36
нуу.. таргеты же щас

мн еотчегото казалось что ранлевелы это концепция sysv

Wom
04.04.2018
18:04:50
полностью же не вырезали

Dok
04.04.2018
18:30:10
а если у меня не описан lb в inventory файле?
Генерировать таск для подансибла.. может

Алексей
04.04.2018
18:34:02
кроме ansigenom есть генераторы доки для ансибла ?

а то много где вижу красиво оформленую доку но чем ее делают нипонятно

Wom
04.04.2018
18:36:36
в ворде же

Ivan
04.04.2018
18:49:29
дока, которая по самому ansible? или что-то другое?

Алексей
04.04.2018
18:53:59
Которая по ролям

Roman
04.04.2018
20:33:17
А в ансибле как такое сделать? https://github.com/saltstack-formulas/php-formula/blob/master/php/map.jinja#L17-L30 Яимею ввиду динамическую генерацию переменных. Есть что-то подобное? Посмотрел одну из самых популярных ролей в Galaxy, там все статично https://github.com/geerlingguy/ansible-role-php/blob/master/vars/Debian.yml

Vadim
04.04.2018
20:40:58
set_fact

https://github.com/openshift/openshift-ansible/blob/master/roles/etcd/tasks/backup/vars.yml#L6

Roman
04.04.2018
20:46:20
Направление понятно, спасибо.

GithubReleases
04.04.2018
21:00:00
ansible/ansible was tagged: v2.4.4.0-1 Link: https://github.com/ansible/ansible/releases/tag/v2.4.4.0-1 Release notes: New release v2.4.4.0-1

ansible/ansible was tagged: v2.4.4.0-1 Link: https://github.com/ansible/ansible/releases/tag/v2.4.4.0-1 Release notes: New release v2.4.4.0-1

Google
Roman
04.04.2018
23:18:46
Что-то не найду как из list of lists получить плоский list

Алексей
04.04.2018
23:20:51
а вроде | flat есть

Roman
04.04.2018
23:22:46
https://docs.ansible.com/ansible/devel/plugins/lookup/flattened.html вроде бы оно, но вместо списка получается строка разделенная запятыми почему-то

можно склеить через set_fact + loop, но если элементов много это капец уродливо

| sum(start=[])

альтернативный (лучший) вариант, обнаруженный в процессе изучения сорцов, доступен начиная с версии 2.5 https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/filter/core.py#L470 | flatten

Артем
05.04.2018
07:15:32
Привет всем! Подскажите возможно ли в плейбуке в hosts выполнить условие, условие - выполнить на всех хостах что есть в inventory кроме группы "test" и "test2" ? (пробовал "!" не кушает)

Kirill
05.04.2018
07:18:09
Для всех, кроме группы, соответственно: all:!groupC

Артем
05.04.2018
07:25:20
Boris
05.04.2018
07:51:11
Приветствую, никто не сталкивался с проблемой jinja шаблонов: <lambda>() takes exactly 0 arguments (1 given) ? С одной ноды ансибл нормально отрабатывает, с другой валится с такой ошибой. Имею ввиду ноды, на которых ансибл запускается, а не которыми управляет

в шаблоне есть макросы, версии python на обеих машинах одинаковые

Boris
05.04.2018
09:12:49
Да я уже почти докопался

по какой-то странной причине по-разному работает функция dict в jinja

в неё передаётся массив пар

В общем проблема оказалась в том, что была установлена старая версия Jinja

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