Nklya
А почему переменные не засунуть в какие-нибудь _vars и они будут нативно доступны везде вместо таких вот приседаний?
Nikita
Хм…у меня такое чувство, что вам проще сделать через lineinfile
Huan
Мне кажется я не сиог объяснить что нужно
Nikita
Если у вас просто конфиг в котором вам построчно нужно внести переменные - самый просто вариант это lineinfile + with_items
Huan
Скажем так, в одном роли есть темплейт. В нем указаны варсы для этой роли и часть варсов из другой роли
Nikita
Huan
Да
Huan
И в обеих ролях есть переменная port
Nikita
Она в роли задана или вы её в плейбуке задаете?
Huan
Все варсы в group_vars
Nikita
test.yml:
- hosts: localhost
connection: local
gather_facts: false
vars:
var_x:
- var_1
- var_2
- var_3
var_y:
- var_11
- var_12
- var_13
tasks:
- name: copy to tmp
template:
src: test.j2
dest: /tmp/test.cong
with_items:
- "{{ var_x }}"
- "{{ var_y }}"
test.j2
{{ var_x }}
{{ var_y }}
test.conf
[u'var_1', u'var_2', u'var_3']
[u'var_11', u'var_12', u'var_13']
Huan
да. и как в темплейте указать значение, к примеру, var_13?
Huan
если в обеих группах есть одинаковая переменная
Huan
и в var_x, и в var_y есть перемменная port
Huan
типа так: {{ var_x.item.port }}?
Nikita
типа так: {{ var_x.item.port }}?
- hosts: localhost
connection: local
gather_facts: false
vars:
var_x:
- var_1
- var_2
- var_3
var_y:
- var_11
- var_12
- var_13
tasks:
- debug:
var: var_y[2]
- name: copy to tmp
template:
src: test.j2
dest: /tmp/test.cong
with_items:
- "{{ var_x }}"
- "{{ var_y }}"
{{ var_x }}
{{ var_y }}
{{ var_y[2] }}
[u'var_1', u'var_2', u'var_3']
[u'var_11', u'var_12', u'var_13']
var_13
Huan
а мжно ли указать {{ var_y['var_13'] }}?
Pavel
Nikita
Чет теперь я не догоняю. Что в доке: http://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html#loops-and-conditionals
Что делаю:
- hosts: localhost
connection: local
gather_facts: false
vars:
var_x:
- var_1
- var_2
- var_3
var_y:
- var_11
- var_12
- var_13
tasks:
- debug:
msg: "OK"
with_items:
- "{{ var_y }}"
when: var_y is match("var_13")
Что получаю:
The conditional check 'var_y is match("var_13")' failed. The error was: Unexpected templating type error occurred on ({% if var_y is match("var_13") %} True {% else %} False {% endif %}): expected string or buffer
Pavel
Nikita
Nikita
Это я про себя:(
Huan
Думаю для такого лучше юзать consul_kv
Sergey
Думаю для такого лучше юзать consul_kv
Для странного ТЗ лучше вообще ничего не "юзать", а сесть и подумать сначала. Налицо всего-навсего проблемы с размещением переменных. Если одна роль идёт за настройками в другую роль - значит, эти настройки относятся не только ко второй роли, а ко всему окружению. Таким образом, они попадают в inventory, а никак не в роль.
Aleksei
Скажите, если у меня таск с циклом, который проходит по листу, то --step будет прерывать на каждом айтеме из листа или проглотит весь таск?
kbks
господа, не могу понять куда смотреть при ""msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'ansible_default_ipv4'" ? не отрабатывает на одном окружении. на других все хорошо. окружения строились из одних шаблонов
Nklya
Версии разные?
kbks
сейчас проверю
kbks
одинаковые
Nikita
Всем привет, скажите, а есть ли возможность добавить host в inventory awx/tower из playbook?
То есть у меня есть playbook, который создает виртуальную машину и назначает ей IP, который берет из сервиса по учету IP
kbks
а обычно такое бывает когда разные версии?
Nklya
Nikita
Nklya
Ну тауэр поддерживает динамические инвентори как я помню.
Вопрос в том, поддерживается ли та система, в которой ты создаешь
kbks
kbks
факты, насколько помню, вроде динамически и собираются.
kbks
еще полностью не разобрался в проекте. Только 4й день на новом месте
Asgoret
Всем привет
Asgoret
Коллеги, вопрос следующий. Если я делаю import_playbook то, с чего должен начать импортируемый плэйбук? Сразу с tasks или все-таки нужна пуста строка hosts?
Aleksey
сразу с таскс начинается роль
Aleksey
ее тоже можно импорт
Vadim
в плейбуке должен быть хостс, да
Asgoret
сразу с таскс начинается роль
нет, там хостс указывается только в первом плэйбуке, второй делает другое задание на тех же нодах. своеобразный конвейр
Vadim
Vadim
Asgoret
Aleksey
@vrutkovs Hybrid Operations with Ansible
Vadim
Aleksey
но тем немеее ваши отцы будут это докладывать
kbks
а экранировать обязательно?
when: "\'{{env}}-jenkins\' in group_names"
kbks
не могу в документации про это ничего найти
Sergey
bebebe
коллеги у меня вопрос со звездочкой:
1. есть динамическое инвентори в котором описаны 1200 хостов
2. у меня есть мониторинг который деплоится ансиблом и загоняет туда эти 1200 хостов со всеми проверками
Мой вопрос:
1. мне нужно по этим 1200 хостам пройтись и сделать что-то
2. Мониторинг ЗНАЕТ какие хосты сейчас доступны (обычно 80%)
3. Что нужно что-бы пройтись только по живым хостам по версии мониторинга? Я могу накостылять несколькими способами
3.1 проверять живость хоста из анслиб плейбуки через API мониторинга
3.2 сделать еще один динамик инвентори который будет ходить в API мониторинга и генерировать инвентори только для живых хостов
Denis 災 nobody
bebebe
Denis 災 nobody
проверять каждый хост в мониторинге - смотрится более накладно..
bebebe
да, проверять каждый хост - вообще идея очень не очень
bebebe
я вот думаю может быть в генерации моего динамического инвентори заходить заодно в мониторинг и через API спрашивать состояние и добавлять его как var для этого хоста
bebebe
либо запускать inventory с флагом --list --alive?
bebebe
у кого-нибудь был опыт решения такой задачи?
из 100% хостов 95% всегда в апе
Nklya
ну сделай динамическое инвентори, которое отдает только живые хосты.
А вдруг хост отвалится в процессе?
bebebe
Nklya
Я думаю стоит посмотреть в другую сторону.
Почему первое возвращает дохлые хосты?
bebebe
потому что это список ВСЕХ хостов. по этому инвентори у меня деплоится инфра вся и остаются артефакты (прошивки, пакеты, докер образа и прочие кубернетесы)
Nklya
А почему некоторые мертвенькие?
Nikita
Всем привет, подскажите пожалуйста, после обновления awx из репозитория с 1.0.2 до 1.0.6 нужно по новой сделать /opt/awx/bin/awx-manage migrate?
brestows
Народ а кто-то работал с jenkins ?
Denis 災 nobody
brestows
хочу понять как склонировать git репозиторий в конкретную папку
Denis 災 nobody
гит плагин стоит?
Denis 災 nobody
а вообще гугл, первый же линк
https://stackoverflow.com/questions/9767919/in-jenkins-how-to-checkout-a-project-into-a-specific-directory-using-git
brestows
это я видел
brestows
и это стоит
Roman
в конретную папку?
по умолчанию он склонирует в рабочее пространство твоей джобы
Roman
если нужно в контретную папку, запусти bash командами