Степан
Без сворма
Vladimir
привет. подскажите плз как в /etc/hosts указать variable вида dicts in array dogs: 1: "one" 2: "two" 3 : "three"
Sebor▂▅▇█▓▒░
не сталкивался с таким, хотя compose юзаем активно
На небольших проектах терпимо, а когда количество сервисов переваливает за 30+ и нужен нормальный деплой - уже не подходит
Aleksey
Добрый день! Ни кто из присутствующих не имеет опыта использования файла с множественным паролями для ansible-vault. по структуре описанной здесь -> https://docs.ansible.com/ansible/latest/user_guide/vault.html#storing-passwords-in-files. не получается заставить его использовать этот файл согласно описанной логике.
Div
коллеги, доброго дня. упёрся в ошибку банальную. при попытке запустить ансибль в свежесозданном контейнере докера на удаленном хосте. FAILED! => {"msg": "docker command not found in PATH"} connection: docker и ansible_connection: docker пробовал. ансиблю PATH скармливал. чянд? и сам виновник : https://pastebin.com/YDA4eWS3
Bird
Ехал докер через докер
Div
и заехал в ансибля...
Div
а что внутри докер контейнера есть команда docker?
нет. и ssh нет. ничего нет, населена роботами...
Div
а что внутри докер контейнера есть команда docker?
я не могу понять, какой вообще докер нужен. модуль питона или сервис...
Andrey
command намекает
Div
таки да. локально взлетело. это был таки докер в докере через докер.
G
Народ, а подскажите плиз для ансибла нужно специальный деплой токен делать или gitlab-ci-token юзера должно быть достаточно? Я просто с ним вроде логинюсь в джобе, но потом ансибл ругается, что репы, в которую я стучусь не существует или надо залогиниться
inqfen
Ну во первых вопрос этот в гитлаб
inqfen
Во-вторых это в зависимости от прав в гитлабе опять же
inqfen
Ансибл тут не при чем
Viktor
Привет, я в плейбуку экспортирую несколько ролей. Хочу в ней же задать vars, общие для всех ролей. У меня получится так сделать, или иерархия только -import_role: .... vars:
Viktor
Получится
просто описать vars над импорт-ролями, или как правильно?
Lamobot
Michael
Народ, вопрос следующий и довольно странный: Вот есть в ansible.cfg параметр strategy. Вот если его выставить в free, то все хосты описанные в host.ini будут обрабатываться в разнобой (опустим для простоты количество форков и прочие ускоряторы). А если выставить в linear то они будут обрабатываться «по списку» как описаны в inventory. А теперь кейс: мне необходимо выполнить несколько задач на пачке хостов, но так чтобы пока первый хост не закончит обрабатываться ко второму не переходила плейбука. Собсна вопрос: Это как-то можно реализовать кроме стратегии linear и на одном форке?
Michael
Serial?
точно!
Michael
Serial?
Спасибо тебе человек!
Aleksey
Спасибо тебе человек!
https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html - думаю тут больше найдешь ответов
Michael
https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html - думаю тут больше найдешь ответов
уже там =) совсем вылетело из головы =| еще раз спасибо!
i4l
а если без serial, то поканает throttle: 1 на блоке?
i4l
просто чёт подумал
Div
У тебя на машине, откуда ансибл запускаешь - есть докер клиент (утилита docker)?
Я уже разобрался. Это был awx в докере. С железного хоста все ок
Никита
Нужна помощь с xml Есть xml-файл <server xmlns="urn:jboss:domain:10.0"> </server> есть плейбук --- - hosts: all gather_facts: no tasks: - name: Add a 'validxhtml' element to the 'website' element xml: path: /home/nik/xml/bar.xml xpath: /x:server/property namespaces: x: "urn:jboss:domain:10.0" attribute: name value: asdad - name: Add aelement xml: path: /home/nik/xml/bar.xml xpath: /x:server/property namespaces: x: "urn:jboss:domain:10.0" attribute: value value: "false" Что я хочу видеть server xmlns="urn:jboss:domain:10.0"> <property name="asdad" value="false"/> </server> Что я получаю server xmlns="urn:jboss:domain:10.0"> <property name="asdad"/><property value="false"/> </server>
Никита
самое забавное без namespaces работает нормально
Никита
осилил, странная конечно штука
Ivan
осилил, странная конечно штука
Осилил -- пиши как, для будущих
Никита
вместо двух тасок одна ``` xml: path: /home/nik/xml/bar.xml xpath: /x:server/property[@name='asdad'] namespaces: x: "urn:jboss:domain:10.0" attribute: value value: "false" ```
Отделение Bereke Bank
в такую конструкцию {{ ansible_all_ipv4_addresses | ipaddr('private') }} как-то можно вснунуть [loop.index - 1] ?
Lamobot
в такую конструкцию {{ ansible_all_ipv4_addresses | ipaddr('private') }} как-то можно вснунуть [loop.index - 1] ?
Если в цикле использовать, то можно https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#extended-loop-variables
[IPT] Dmitry
ребят, а чё делать, если я хочу использовать одинакоые хостовые переменные для двух разных хостов кластера? делать их групповыми для этих хостов?
[IPT] Dmitry
а если я хочу групповые шаблоны?
Lamobot
а если я хочу групповые шаблоны?
Что такое "групповые шаблоны"?
Отделение Bereke Bank
Lamobot
template для group
Шаблоны с группами и хостами никак не связаны. В шаблон вставятся переменные, и всё
[IPT] Dmitry
конечно не связаны. вопрос не в том, как они связаны, а что делать
[IPT] Dmitry
я для host templates вот так делал template: src: "{{ inventory_hostname_short }}/{{ item.1 }}"
[IPT] Dmitry
сейчас думаю что бы такого сделать для group templates. подход совсем не ansible way, но лучше ничего пока в голову для решения задачи не пришло
[IPT] Dmitry
есть кластерная группа, хочу для неё одинаковые templates
Lamobot
я для host templates вот так делал template: src: "{{ inventory_hostname_short }}/{{ item.1 }}"
Эээ, а зачем так? Как раз и нужен один шаблон на все хосты :)
[IPT] Dmitry
Эээ, а зачем так? Как раз и нужен один шаблон на все хосты :)
потому что для некоторых хостов шаблоны уникальны
[IPT] Dmitry
огромная портянка, которую дешевле просто закинуть в host template, чем мучаться безконечно с jinja и единым шаблоном
[IPT] Dmitry
видимо из этого и растут мои проблемы
Никита
Используй модуль template
нужно патчить уже имеющийся большой xml в котором может быть что угодно, и нельзя чтобы оно пропало
Fire
огромная портянка, которую дешевле просто закинуть в host template, чем мучаться безконечно с jinja и единым шаблоном
А чё с ним мучится? Проверяешь - существует ли переменная, если существует - используешь в шаблоне.
[IPT] Dmitry
Лень)
ну ты не осознаёшь альтернативу второго стула
Fire
ну ты не осознаёшь альтернативу второго стула
какую ещё альтернативу и что за второй стул?
[IPT] Dmitry
какую ещё альтернативу и что за второй стул?
в конфигурации около 600 всех возможных опций и они могут исчезать, появляться, переименовываться просто от релиза к релизу. а ещё деплоем должны более менее пользоваться эникейщики, которые максимум на что способны - поправить конфиг в гите. поэтому такое хуёвое решение, шаблонизация только не меняющихся переменных
[IPT] Dmitry
короче бооооооль
[IPT] Dmitry
ansible way для кластера - кластерная группа и групповые переменные для кластера?
Fire
короче бооооооль
Это какой-то очень плохой путь.
[IPT] Dmitry
Это какой-то очень плохой путь.
возможно, но он работал. и работал нормально, пока не пришлось делать кластер
Fire
А что за софт?
[IPT] Dmitry
я вообще заметил, что ansible далеко не всегда ультимативно решает реальные задачи. особенно если говно содержится в условии задачи. чаще всего ты перекладываешь одну боль на другую, до тех пор пока она тебя не трогает
Sergey
Питон из коробки в xml умеет.
[IPT] Dmitry
А не надо на ансибле "программировать". Напиши свой модуль и не парься.
если бы это было просто, то этот модуль был бы уже давно написан
Sergey
Что там такого ультрасложного?
Отделение Bereke Bank
я для host templates вот так делал template: src: "{{ inventory_hostname_short }}/{{ item.1 }}"
так не пойдет? src: "{{ my_shit_var | default(default_template) }}"
Отделение Bereke Bank
я для host templates вот так делал template: src: "{{ inventory_hostname_short }}/{{ item.1 }}"
более наглядный пример https://github.com/nginxinc/ansible-role-nginx/blob/main/tasks/config/template-config.yml#L17
[IPT] Dmitry
я бы написал, честно. но там такой объём, что я все свои силы пущу на разработку и поддержку этого модуля
[IPT] Dmitry
Что там такого ультрасложного?
ну если реально интересно, посмотрите администрирование oracle weblogic. в частности wlst и jython