
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

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

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

Sergey
04.04.2018
16:08:59
я могу переопределить пользователя?

Vadim
04.04.2018
16:09:49

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

Sergey
04.04.2018
16:10:59

Дмитрий
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

Дмитрий
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

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 если что

Vadim
04.04.2018
17:06:39
но мне кажется вам нужен cloud-init / ignition

Denis 災 nobody
04.04.2018
17:07:19
и запуск ровно 1 раз

Vadim
04.04.2018
17:07:38

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?

Vadim
04.04.2018
17:21:36

Sergey
04.04.2018
17:22:33

Алексей
04.04.2018
17:25:02

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

Алексей
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

Алексей
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 на обеих машинах одинаковые

Sergey
05.04.2018
09:11:24

Boris
05.04.2018
09:12:49
Да я уже почти докопался
по какой-то странной причине по-разному работает функция dict в jinja
в неё передаётся массив пар
В общем проблема оказалась в том, что была установлена старая версия Jinja