Nklya
А почему переменные не засунуть в какие-нибудь _vars и они будут нативно доступны везде вместо таких вот приседаний?
Nikita
Хм…у меня такое чувство, что вам проще сделать через lineinfile
Huan
Мне кажется я не сиог объяснить что нужно
Nikita
Если у вас просто конфиг в котором вам построчно нужно внести переменные - самый просто вариант это lineinfile + with_items
Huan
Скажем так, в одном роли есть темплейт. В нем указаны варсы для этой роли и часть варсов из другой роли
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
а мжно ли указать {{ var_y['var_13'] }}?
нет, надо словарем делать
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
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
а обычно такое бывает когда разные версии?
могло быть. Если не оно, смотри в чем разница между нодами, почему в факты не попадает ansible_default_ipv4
Nklya
Ну тауэр поддерживает динамические инвентори как я помню. Вопрос в том, поддерживается ли та система, в которой ты создаешь
Nikita
Ну тауэр поддерживает динамические инвентори как я помню. Вопрос в том, поддерживается ли та система, в которой ты создаешь
В смысле в Source указать свою виртуализацию? У меня oVirt и к сожалению там нету поддержки (хотя и то и то Red Hat). Придется всё таки видимо Custom Scritp писать
kbks
факты, насколько помню, вроде динамически и собираются.
kbks
еще полностью не разобрался в проекте. Только 4й день на новом месте
Asgoret
Всем привет
Asgoret
Коллеги, вопрос следующий. Если я делаю import_playbook то, с чего должен начать импортируемый плэйбук? Сразу с tasks или все-таки нужна пуста строка hosts?
Aleksey
сразу с таскс начинается роль
Aleksey
ее тоже можно импорт
Vadim
в плейбуке должен быть хостс, да
Asgoret
сразу с таскс начинается роль
нет, там хостс указывается только в первом плэйбуке, второй делает другое задание на тех же нодах. своеобразный конвейр
Asgoret
тогда пиши только таски и делай import_tasks
т.е. в родоначальном это будет так: -import_tasks: example.yml А в импортируемыом tasks: -name...... Правильно понял?
Asgoret
угу
понял, спасибо
Aleksey
@vrutkovs Hybrid Operations with Ansible
Vadim
@vrutkovs Hybrid Operations with Ansible
чот я сразу про методички КГБ подумал
Aleksey
но тем немеее ваши отцы будут это докладывать
Vadim
но тем немеее ваши отцы будут это докладывать
кастомерам нравится, главное слоб побольше ввернуть
kbks
а экранировать обязательно? when: "\'{{env}}-jenkins\' in group_names"
kbks
не могу в документации про это ничего найти
bebebe
коллеги у меня вопрос со звездочкой: 1. есть динамическое инвентори в котором описаны 1200 хостов 2. у меня есть мониторинг который деплоится ансиблом и загоняет туда эти 1200 хостов со всеми проверками Мой вопрос: 1. мне нужно по этим 1200 хостам пройтись и сделать что-то 2. Мониторинг ЗНАЕТ какие хосты сейчас доступны (обычно 80%) 3. Что нужно что-бы пройтись только по живым хостам по версии мониторинга? Я могу накостылять несколькими способами 3.1 проверять живость хоста из анслиб плейбуки через API мониторинга 3.2 сделать еще один динамик инвентори который будет ходить в API мониторинга и генерировать инвентори только для живых хостов
bebebe
сдёрнуть хосты с мониторинга и засунуть динамически в хостс?
да, я уже думал об этом (см последний пункт вопроса)
Denis 災 nobody
проверять каждый хост в мониторинге - смотрится более накладно..
bebebe
да, проверять каждый хост - вообще идея очень не очень
bebebe
я вот думаю может быть в генерации моего динамического инвентори заходить заодно в мониторинг и через API спрашивать состояние и добавлять его как var для этого хоста
bebebe
либо запускать inventory с флагом --list --alive?
bebebe
у кого-нибудь был опыт решения такой задачи? из 100% хостов 95% всегда в апе
Nklya
ну сделай динамическое инвентори, которое отдает только живые хосты. А вдруг хост отвалится в процессе?
Nklya
Я думаю стоит посмотреть в другую сторону. Почему первое возвращает дохлые хосты?
bebebe
потому что это список ВСЕХ хостов. по этому инвентори у меня деплоится инфра вся и остаются артефакты (прошивки, пакеты, докер образа и прочие кубернетесы)
Nklya
А почему некоторые мертвенькие?
bebebe
А почему некоторые мертвенькие?
они терроториально сильно разбросаны, и не всегда хороший интернет
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 командами