Aleksey
- 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
Тигран
да, думаю подойдет, спасибо!
Dmytriy
Подскажите пожалуйста. как можно дергать в ansible файлы по маске? типа "with_items=*.conf" у меня есть куча конфигов nginx, файлы типа test.app.com.conf - когда я добавляю новый конфиг, то мне надо идти обновлять переменные плейбука -добавляя новую с троку с новым кофигом в переменную. как это можно обойти что бы оно само брало все нужные файлы .
hackru
у меня похожее есть в плейбуке, не оч элегантно, но работает - name: Copy file to host template: src={{ item }} dest=/etc/nginx/conf.d/ with_fileglob: - ../templates/{{ inventory_hostname }}/*.conf notify: - restart nginx
hackru
выпилить отсюда {{ inventory_hostname }} и будет наверное то что тебе нужно
Dmytriy
Спасибо. попробую
Dmitry
а ни у кого случайно в последнее время не ломались плейбуки с pip install editable=True чего-нить?
Тигран
@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
Тигран
я попробовал убрать 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)
Тигран
есть идеи, почему оно выполняется не параллельно?
Арсен
strategy: free сделан не для того, чтобы задачи запускались одновременно, а чтобы следующая задача стартовала не дожидаясь остальных хостов
Тигран
как запустить все задачи (роли) одновременно?
Andrey
написать плейбук и включить туда все роли (например)
Тигран
или я неправильно понял?
Тигран
т.е у меня всегда один хост
Тигран
у меня есть множество ролей (в примере указаны 2), которые должны параллельно выполнятся
Тигран
сейчас, запускается первая роль, уходит в sleep(10), только потом запускается вторая роль
Тигран
как добиться параллельности?
Dmitry
ловите наркомана
Aleksey
@emotionfolio_tigran strategy: free с какой целью выставляешь ты ?
Дмитрий
у меня есть множество ролей (в примере указаны 2), которые должны параллельно выполнятся
ansible-playbook play1.yml & ansible-playbook play2.yml& Не подойдёт? ) Логи только, интересно, как писаться будут
Тигран
@emotionfolio_tigran strategy: free с какой целью выставляешь ты ?
c целью параллельно запустить роли плея
Тигран
- 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, правильно?
Aleksey
в этом мире ничего не бывает паралельно.
Aleksey
ибо достичь оной нельзя.
Aleksey
так что думай над плейбуком еще раз
Тигран
добавил в таски 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 не запрашивает, запускает и забывает
Тигран
следующая задача уже проверяет job пока он не будет finished
Тигран
хотя не, второй таск ждет, пока чек не пройдет
Арсен
кажется, тут хотят ансибл как скежулер использовать
Dmitry
кажется тут норкоман, говорил же - ловите! :)
Dmitry
может ему кто-нибудь расскажет про что-то типа RQ?
Арсен
> First, run a Redis server
Арсен
ммм
Арсен
хорошая штука
Тигран
Dmitry
хорошая штука
да без б, поставь RabbitMQ :D
Dmitry
scheduler делаю за границами ансибла
давай трудным путем пойдем. тебе параллелизм зачем?
Тигран
да
Тигран
но при этом, мне нужен Ansible Tower
Pavel
скежулер - это от слова кэжуал?
Sergey
скедъюл вроде обычно читается 😊
Трайбор
Как только шедулер не прочитают...
Artem
Ну англичане и американцы даже произносят по разному
Artem
Но скежулер это конечно мощно))
Dmitry
Почему. Я работаю на американскую компанию, они именно так на брифингах и произносят
Dmitry
Что-то типа скежьюле
Pavel
Так они кэжуалы потому что
Dmitry
Шедулер это что-то британское
Pavel
Это вообще русское упрощенное произношение
Artem
скедулэр, они никак не могут произносит скеЖулер
Artem
либо они бургером зажовывают в этот момент
Трайбор
Pavel
schedule в англ. языке произносится как скедьюлэ
Трайбор
Dmitry
Мрак
Ну мрак не мрак, а офис на бродвее.
Artem
https://www.youtube.com/watch?v=p0Utdnh4hg8
Artem
Значит там индийцы на бродвее у вас сидят или узбеки)
Dmitry
Охоспади
Я был удивлён, но привык.