Mai
а какая OS
Sergey
Господа, этот чат - про Ansible, напоминаю.
+_-
Так это тема "как запускать ансибл если у тебя пароль на ключ"
+_-
+_-
Sergey
Шутки незадорого, пожалуйста, в @cloud_flood. Я чувство юмора забыл во вчерашнем дне.
+_-
Ок
+_-
Вопрос по ансибле
+_-
При strategy linear какой параметр характеризует на скольких серверах запускается таска? fork ?
+_-
А как тогда с serail? какое дефолтное значение для него? бесконечно?
+_-
Второй вопрос.
У меня с ансиблом вечная боль при выполнении длительных тасок, длительных, это больше часа, или, например 8 часов.
Причем за эти 8 часов может и ssh отвалится.
Что посоветуете, сделать кроме async 28800 ?
Anonymous
есть один таск:
- name: all in one
set_fact:
servers_facts: "{{ servers_facts|default([]) + [ hostvars[item[0]][item[1]] ] }}"
with_nested:
- "{{ groups['servers_hash_check'] }}"
- "{{ facts_params }}"
в листе facts_params есть некоторые переменные с subelements(или как правильнее написать?):
facts_params:
- ansible_default_ipv4
- ansible_distribution
- ansible_distribution_version
- ansible_fqdn
- ansible_machine_id
- ansible_memtotal_mb
# - "ansible_mounts.0.uuid" -- хз, как туда провалиться, json_query пишет ошибку.
- ansible_processor
- ansible_processor_vcpus
В каком виде правильно написать ansible_mounts.0.uuid, например, чтобы я получал нужную часть из hostvars? dot notation и "[ansible_mounts][0][uuid]" тоже не принимает
Sergey
Sergey
Sebor▂▅▇█▓▒░
+_-
Sebor▂▅▇█▓▒░
Michael
Народ, привет! Хочу странного: запускать ansible-playbook по коммиту в gitlab через gitlab-ci.
Ранеры/шманеры - настроил, линтеры бегают, а вот загвоздка с доступами:
Пока у меня один раннер для этих плейбуков/ролей, но дальше может быть больше. Как, а главное можно ли корректно передать ssh private key через флаги ansible-playbook в виде plain text?
Пока нашел только вариант писать из секретов в файлик, а файлик передавать через extra. А генерировать пару ключей для пользователя gitlab-runner не хочется.
Короче пните в правильном направлении - наверняка ж кто-то уже сталкивался с такими задачами =|
Sergey
Sergey
Зачем висеть на соединении.
Sebor▂▅▇█▓▒░
Michael
Sebor▂▅▇█▓▒░
Lamobot
+_-
+_-
+_-
Ладно. Спасибо
+_-
А всё таки, а если я хочу сделать, что бы оно само через 8 часов забрало резалт?
+_-
Получается надо таску fetch если файл есть и sleep если нету
Sebor▂▅▇█▓▒░
Я бы поменял общий подход в этой задаче - скрипт на серваке сам оповестит об окончании/запущит файл после завершения работы
Lamobot
А потом забрать то что нужно через fetch
+_-
тоесть от кого-то я могу курлом закинуть результат, но не от всех
+_-
Ладно, это снова не совсем ансибл.
Ансибл я юзаю, потому что так всё же удобнее, чем pssh разводить
Sebor▂▅▇█▓▒░
Ну тогда просто запусти один раз на старт и второй раз через n времени на сбор
+_-
Да. Самое логичное. Спасибо, что то сам не догадался.
+_-
async: 999999
poll: 0
+_-
верно?
Sebor▂▅▇█▓▒░
Типа того, да
Anonymous
или опять неверный синтаксис?
Lamobot
ansible_mounts[0]['uuid']
Anonymous
ok: [localhost] => (item=[u'sanisimov-cmpt', u'ansible_default_ipv4'])
ok: [localhost] => (item=[u'sanisimov-cmpt', u'ansible_distribution'])
ok: [localhost] => (item=[u'sanisimov-cmpt', u'ansible_distribution_version'])
ok: [localhost] => (item=[u'sanisimov-cmpt', u'ansible_fqdn'])
ok: [localhost] => (item=[u'sanisimov-cmpt', u'ansible_machine_id'])
ok: [localhost] => (item=[u'sanisimov-cmpt', u'ansible_memtotal_mb'])
ok: [localhost] => (item=[u'sanisimov-cmpt', u'ansible_mounts[0][uuid]'])
fatal: [localhost]: FAILED! => {"msg": "Unexpected templating type error occurred on ({{ servers_facts|default([]) + [ hostvars[item[0]][item[1]] ] }}): coercing to Unicode: need string or buffer, list found"}
Lamobot
А таск?
Anonymous
- name: all in one
set_fact:
servers_facts: "{{ servers_facts|default([]) + [ hostvars[item[0]][item[1]] ] }}"
with_nested:
- "{{ groups['servers_hash_check'] }}"
- "{{ facts_params }}"
Lamobot
Anonymous
понял, спасибо
Elenhil
Господа, а можно как-нибудь плейбуку сказать где искать роли и групварсы? Чот я не нашел по документации
Anonymous
можно прямо путь указать
Anonymous
к каталогу роли
Fire
Elenhil
Мне per playbook
Elenhil
Fire
А групварсы?
А они у вас как-то почему-то отдельно лежат?
Elenhil
А они у вас как-то почему-то отдельно лежат?
Смысл в чем - у меня есть набор плейбуков, которые используют одни и те же групварсы и роли, но нужны для разного. Половина для установки сервисов на машины, половина для установки этих же сервисов в пакере
Elenhil
Хочу их разнести по разным фолдерам, т.к. куча файлов в одном меня не сильно радует
Fire
Fire
Но поддерживать это, конечно никто не будет)
Fire
Ansible смотрит в ansible.cfg в текущей директории.
Elenhil
Elenhil
Не, варсы должны быть одинаковыми
Fire
Эм...
Fire
Ты спрашивал как в плейбук подать групварсы)
Elenhil
Elenhil
Не из ./group_vars/groupname, а из /path/groupname
Sergey
Sergey
Sergey
Они лежат в inventories/<inventory_name>/group_vars