
Tigran
10.04.2017
13:54:02
в итоге получается json конфиг
где есть true/false
как можно это обыграть?

Алексей
10.04.2017
13:58:50
у меня похожее

Google

Алексей
10.04.2017
13:59:05
- name: Install and configure mongo
hosts: svc-mongod
become: yes
any_errors_fatal: true
vars_files:
- "vars/main.yml"
roles:
- role: mongod
become: yes
when: "{{ has_svc_mongod | default(False) or consul_env}}"
tags:
- mongod
- external

Tigran
10.04.2017
14:01:20
да, думаю подойдет, спасибо!

Dmitriy
10.04.2017
14:02:56
Подскажите пожалуйста. как можно дергать в ansible файлы по маске? типа "with_items=*.conf"
у меня есть куча конфигов nginx, файлы типа test.app.com.conf - когда я добавляю новый конфиг, то мне надо идти обновлять переменные плейбука -добавляя новую с троку с новым кофигом в переменную.
как это можно обойти что бы оно само брало все нужные файлы .

Hackru
10.04.2017
14:18:06
у меня похожее есть в плейбуке, не оч элегантно, но работает
- name: Copy file to host
template: src={{ item }} dest=/etc/nginx/conf.d/
with_fileglob:
- ../templates/{{ inventory_hostname }}/*.conf
notify:
- restart nginx
выпилить отсюда {{ inventory_hostname }} и будет наверное то что тебе нужно

Dmitriy
10.04.2017
14:22:39
Спасибо. попробую

Dmitry
10.04.2017
14:53:48
а ни у кого случайно в последнее время не ломались плейбуки с pip install editable=True чего-нить?

Tigran
10.04.2017
14:55:02
@freeseacher попробовал сделать аналогично, с hello world, пока параллельно не получается
---
- name: Get config
hosts: webservers
roles:
- get_config
- name: Start replication process
strategy: free
hosts: webservers
roles:
- role: b2
when: b2 is defined
- role: s3
when: s3 is defined
тут у меня два плея. Первый достает конфиги (пока не важно как и откуда). Второй параллельно запускает роли если в конфигах указанно true. Я пока что разместил переменные в host_vars
в первой роли я делаю wait_for: timeout:10
оно запускает первую роль, ждет 10 секунд, потом вторую
хотя, я вроде поставил strategy:free

Google

Tigran
10.04.2017
15:39:59
я попробовал убрать wait_for, вместо этого запустить питонячий скрипт с time.sleep(10)
и оно все равно strategy:free не запускает параллельно
как сделать параллельное выполнение ролей и их тасков?
сейчас у меня выглядит так
Плейбук
---
- name: Get config
hosts: webservers
roles:
- get_config
- name: Start replication process
strategy: free
hosts: webservers
roles:
- role: b2
when: b2 is defined
- role: s3
when: s3 is defined
Таск первой роли
---
- name: S3
command: "python3 -u /home/emotionfolio/projects/test-ansible/s3.py"
register: s3
- debug: msg="{{ s3.stdout }}"
в самом скрипте просто print('hello world') и time.sleep(10)
есть идеи, почему оно выполняется не параллельно?

Michael
10.04.2017
16:19:20
strategy: free сделан не для того, чтобы задачи запускались одновременно, а чтобы следующая задача стартовала не дожидаясь остальных хостов

Tigran
10.04.2017
16:28:35
как запустить все задачи (роли) одновременно?

Andrey
10.04.2017
16:28:57
написать плейбук и включить туда все роли (например)

Tigran
10.04.2017
16:30:51
или я неправильно понял?
т.е у меня всегда один хост
у меня есть множество ролей (в примере указаны 2), которые должны параллельно выполнятся
сейчас, запускается первая роль, уходит в sleep(10), только потом запускается вторая роль
как добиться параллельности?

Dmitry
10.04.2017
17:09:10
ловите наркомана

Алексей
10.04.2017
17:09:52
@emotionfolio_tigran strategy: free с какой целью выставляешь ты ?

Дмитрий
10.04.2017
17:24:00

Google

Tigran
10.04.2017
17:34:22
- name: Start replication process
strategy: free
hosts: webservers
roles:
- role: b2
when: b2 is defined
- role: s3
when: s3 is defined
вот плей
мне нужно, чтобы эти две роли выполнились параллельно
я так понимаю, что вместо strategy:free мне нужен playbook_async, правильно?

Алексей
10.04.2017
17:48:32
в этом мире ничего не бывает паралельно.
ибо достичь оной нельзя.
так что думай над плейбуком еще раз

Tigran
10.04.2017
18:13:46
добавил в таски async и poll
---
- name: B2
command: "python3 -u /home/emotionfolio/projects/test-ansible/b2.py"
async: 50
poll: 0
register: b2
- name: B2 Check
async_status: jid={{ b2.ansible_job_id }}
register: result
until: result.finished
retries: 30
poll: 0 не запрашивает, запускает и забывает

Tigran
10.04.2017
18:14:38
следующая задача уже проверяет job пока он не будет finished
хотя не, второй таск ждет, пока чек не пройдет

Admin
ERROR: S client not available

Michael
10.04.2017
18:23:52
кажется, тут хотят ансибл как скежулер использовать

Dmitry
10.04.2017
18:25:12
кажется тут норкоман, говорил же - ловите! :)
может ему кто-нибудь расскажет про что-то типа RQ?

Michael
10.04.2017
18:27:52
> First, run a Redis server
ммм

Google

Michael
10.04.2017
18:28:08
хорошая штука

Tigran
10.04.2017
18:30:41

Dmitry
10.04.2017
18:39:38

Tigran
10.04.2017
18:41:43
да
но при этом, мне нужен Ansible Tower

Anatoly
10.04.2017
18:42:24

Dmitry
10.04.2017
18:42:38
блеать, ты тупой? тебя не спрашивали да или нет. вопрос был задан "зачем?"
зачем ему нужны таски параллельно?
чего он хочет этим добиться

Tigran
10.04.2017
18:43:11
Дима, из какого ты города?)
уж больно плохо ты разговариваешь с незнакомыми

Dmitry
10.04.2017
18:43:38

Tigran
10.04.2017
18:44:01
а блеать у тебя на лбу написано
по делу с тобой ничего не будет

Dmitry
10.04.2017
18:44:48
ок, братиш, короткий ответ будет такой: ты выбрал неподходящий инструмент, это невозможно.
а длинный ответ ты обсуждать не захотел. на том и закончим

Anatoly
10.04.2017
18:46:26
А вот троллинга ради какой инструмент подходящий мне вот прям интересно стало

Dmitry
10.04.2017
18:47:05
у Тиграна спрОсите. когда найдет.
телепаты в отпуске, условий задачи от него ведь добиться не удалось

Александр
10.04.2017
18:47:30