
Semyon
16.01.2017
19:04:41
донести и, как минимум, дёрнуть рестарт сервисов
а то ещё в процессе, не дай Бог, базу мигрировать
или конфиги перегенерить

Dmitry
16.01.2017
19:44:42
:)

Google

Dmitry
16.01.2017
19:44:50
программирование на конфигах
again

Dmitriy
16.01.2017
19:46:15
ой. Семён, я ж не тебе пишу.

A
16.01.2017
19:50:21

Lev
16.01.2017
19:51:37
Окок) если нет своего инструмента, то почему нет

Anatoly
16.01.2017
19:53:40
https://github.com/myplaceonline/posixcube
тут кстати пока стоик писали, другие уже с решением пришли.

Vlad
16.01.2017
19:54:01

A
16.01.2017
20:13:35

Anatoly
16.01.2017
20:14:01

A
16.01.2017
20:16:12
как альтернативу софту по теме.
но там еще всего нет, если сравнивать с.

Dmitrii
16.01.2017
22:18:19

Google

Dmitry
17.01.2017
05:25:43

Bogdan (SirEdvin)
17.01.2017
15:52:11
Приходится использовать в случаях, когда проверка возможна только через статус задачи

Sander
17.01.2017
21:55:05
======
Помогите, как вставить переменную с массивом в roles.
Мне это надо, чтоб устанавливать для разных проектов, необходимые ему контейнеры.
hosts_vars:
---
domain: site.ru
roles_conf:
- application
- php-fpm
- nginx
website.yml
---
- hosts: "site.ru"
become: true
roles:
"{{ roles_conf }}"
так конечно не работает
но в docker_containers хелпере, такой метод работал.

Albert
17.01.2017
21:59:00
Энтер убери

Sander
17.01.2017
22:02:20
пробывал
уже
The error appears to have been in '/ansible/app.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
@Tahvok
---
- hosts: "sajt.ru"
become: true
roles: "{{ roles_conf }}"

Albert
17.01.2017
22:05:32
Тогда никак.. Я помню мне @bcoca по irc рассказывал что есть вещи которые ансибл читает, до превращения параметров из jinja2 в обычный yaml.
Ролы логично что одни из них.
Кстати, именно поэтому и никакие нормальные возможности из jinja2 не работают

Sander
17.01.2017
22:06:18
просто у меня в конфиге
roles_conf:
- application
- php-fpm
- nginx
и надо чтоб он эти контейнеры запустил
я думал в roles сделать
но он так не идет
((
?

Albert
17.01.2017
22:06:49
Типа {% if %} (с новыми строчками) и т.п.

Sander
17.01.2017
22:07:57
в yml нельзя же j2

Albert
17.01.2017
22:08:07
Ну две возможности: напиши два разных плея, и запускай каждый по нужде через when
Либо сами роли через when

Google

Albert
17.01.2017
22:08:15

Sander
17.01.2017
22:08:22
как
? пожалуйста подскажи как

Albert
17.01.2017
22:08:41
Если писать {% if %} на одной строке, то будет работать

Sander
17.01.2017
22:08:53
?

Albert
17.01.2017
22:08:59

Sander
17.01.2017
22:09:16
мне для ролей как-то надо

Albert
17.01.2017
22:09:28
Но опять, какая надобность динамически подставлять роли?

Sander
17.01.2017
22:12:33
ansible-playbook website.yml --extra-vars "hosts_vars=site.ru"
я когда запускаю прейбук, он для каждого сайта смотрит hosts_vars
допустим для сайта site.ru, только 2 контейнера nginx, php-fpm
он их и поставит

Sander
17.01.2017
22:13:53
я могу запустить чтоб на всех серверах он поднял контейнеры, если я укажу просто hosts_vars php например
или all
везде он будет смотреть мои настройки в hosts_vars и в зависимости от них, делать нужные действия
?

Albert
17.01.2017
22:27:04
Каждый сайт - отдельный проект с отдельными требованиями - именно для этого и сделаны плейбуки. Просто пиши разный плейбук под разный проект
ansible-playbook website-site.ru.yml

Sander
17.01.2017
22:28:32
тогда зачем hosts_vars

Albert
17.01.2017
22:29:02
Для хост варс

Google

Albert
17.01.2017
22:29:11
Замене default в ролях
Одному nginx с портом 80, другому с 8080
Но обеим пишешь тот же роль
Либо берешь готовый из galaxy.ansible.com
А что запускать, должен не хост решать, а ты сам - то есть плейбук.

Илья
18.01.2017
09:58:27
Всем привет! Мне кажется уже когда-то спрашивал, но все же. Есть следующий сценарий:
* Отработала таска обновления конфига, на которой висит notify
* Машина, с которой устанавливаем отключается (либо просто потеря связи до настраиваемого хоста)
* notify не отрабатывает и сервис например не подтягивает новый конфиг
Последующий запуск не выполнит notify так как конфиг уже не обновляется. Как выходите из подобного сценария?

Ivan
18.01.2017
10:02:04
как вариант
You can change this behavior with the —force-handlers command-line option, or by including force_handlers: True in a play, or force_handlers = True in ansible.cfg. When handlers are forced, they will run when notified even if a task fails on that host. (Note that certain errors could still prevent the handler from running, such as a host becoming unreachable.)

Admin
ERROR: S client not available

Ivan
18.01.2017
10:02:23
отсюда http://docs.ansible.com/ansible/playbooks_error_handling.html#handlers-and-failure

Илья
18.01.2017
10:07:10
ну force_handlers выполнится в конце текущего запуска. Если локальная машина упала или пропала сеть до удаленного хоста, то notify все равно не будет выполнен: Note that certain errors could still prevent the handler from running, such as a host becoming unreachable.

Ivan
18.01.2017
10:13:53
He ansible way - в начале таски ставить некий флаг ( ~/.ansible/job_fail ) и удалять его в конце плейбука.
Это неэлегантно, но быстро реализуемо
Ну и проверять его в начале выполнения

Albert
18.01.2017
10:16:28
Добавь просто таск сразу после таска где конфа меняется:
- name: flush all handlers
meta: flush_handlers

Ivan
18.01.2017
10:18:10
Есть веорятность, что такой подход не сработает. Небольшая, но есть.

feature
18.01.2017
10:22:10
может быть вставить в начале конфига макрос ansible_managed с какой-нибудь версией?
или повторный запуск плейбука не предполагается?

Илья
18.01.2017
14:20:29
во всех вариантах судя по всему есть вероятность того, что что-то не сойдется. Из коробки проблема не решается.

Игорь
19.01.2017
12:59:15
Скажите, а что в Ansible с тестированием?

Google

Игорь
19.01.2017
12:59:39
Как playbook и прочее тестировать?

Алексей
19.01.2017
13:00:40
molecule

Игорь
19.01.2017
13:13:53
спасибо

Dmitry
19.01.2017
14:53:47
testinfra

Алексей
19.01.2017
14:55:25
testinfra
оно там в коробке. уверен человек найдет

Alexey
19.01.2017
14:56:54

Алексей
19.01.2017
14:57:21
эм. что ?
в молекуле для тестов используется тестинфра и серверспек и госс

Alexey
19.01.2017
15:00:08

Aleksandr
19.01.2017
17:21:21
из-за чего может быть ошибка
[WARNING]: sftp transfer mechanism failed on [server.ru]. Use ANSIBLE_DEBUG=1 to see detailed information
[WARNING]: scp transfer mechanism failed on [server.ru]. Use ANSIBLE_DEBUG=1 to see detailed information

Никита
19.01.2017
17:23:26
Gatheting_facts вырубить попробуй

Lev
19.01.2017
17:23:26
в плохой экономике

Никита
19.01.2017
17:24:00
Проверить что хостнеймы из andible_host есть в dns
Connection local

Dmitry
19.01.2017
17:25:13
Вообще если сделать -vvvv
То скорее всего будет видно

Aleksandr
19.01.2017
22:24:40
в конфиге ssh на удаленном сервер нужно заменить
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Jothi basu
20.01.2017
07:16:56
https://t.me/joinchat/AAAAAEEPrsUexTZTIZUjYg
For Ansible English