Size: a a a

ansible — русскоговорящее сообщество

2021 February 11

A

Alexei in ansible — русскоговорящее сообщество
) я же говорю, мои аргументы разбиты ) ) )
источник

A

Alexei in ansible — русскоговорящее сообщество
А не подскажете. как в group_vars в файл прописать инклуд другого файла? (уровнем выше) Я могу конечно в плейбуке это прописать, но это как-то так, не аккуратненько....
источник
2021 February 12

KM

Konstantinn M in ansible — русскоговорящее сообщество
Ребят, а можете подсказать по ансибл. У меня есть инвентори, где группа серверов, например [servers] - server1,server2, server3.. Как из вывести в переменную. Ну т.е. если я сделаю цикл with_items и потом debug: msg: то оно, конечно, выводится... Но вот если надо в переменную, чтобы потом в шаблон как переменную чтобы в шаблоне было так же - server1, server2... перечисление.
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Konstantinn M
Ребят, а можете подсказать по ансибл. У меня есть инвентори, где группа серверов, например [servers] - server1,server2, server3.. Как из вывести в переменную. Ну т.е. если я сделаю цикл with_items и потом debug: msg: то оно, конечно, выводится... Но вот если надо в переменную, чтобы потом в шаблон как переменную чтобы в шаблоне было так же - server1, server2... перечисление.
какую задачу решаешь? почему нельзя обойтись этой группой в инвентори?
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Alexei
А не подскажете. как в group_vars в файл прописать инклуд другого файла? (уровнем выше) Я могу конечно в плейбуке это прописать, но это как-то так, не аккуратненько....
думаю, инклюдить в групповые переменные как раз некрасиво, чтобы не контролировать эту вложенную иерархию. инклудить в плеи выглядит самым подходящим место по мне
источник

A

Alexei in ansible — русскоговорящее сообщество
Konstantinn M
Ребят, а можете подсказать по ансибл. У меня есть инвентори, где группа серверов, например [servers] - server1,server2, server3.. Как из вывести в переменную. Ну т.е. если я сделаю цикл with_items и потом debug: msg: то оно, конечно, выводится... Но вот если надо в переменную, чтобы потом в шаблон как переменную чтобы в шаблоне было так же - server1, server2... перечисление.
Блин, только хотел похожий вопрос задать :).
Есть список переменных:
item1:
 item11:
  item111:val1
  item112:val2
 item12:
  item111:val1
  item112:val2
item2:
 item21:
  item111:val1
  item112:val2
 item22:
  item111:val1
  item112:val2
Item1, item2 -  это {{ inventory_hostname }}  а вот как мне получить переменную для подстановки item11, item12.. и после уже значения item1.item11.item111 ?
источник

A

Alexei in ansible — русскоговорящее сообщество
Как правильно с переменными работать?
источник

KM

Konstantinn M in ansible — русскоговорящее сообщество
Maksim Sharov
какую задачу решаешь? почему нельзя обойтись этой группой в инвентори?
Мне надо для шаблона специального в хтмл формате в котором будет список серверов server1, server2, server3.. Как еще иначе это сделать.
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Alexei
Как правильно с переменными работать?
ты хочешь определить переменную для группы или хоста?

работать так https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
хостовые переменные лежат в host_vars/<имя твоего хоста>.yml, с групповыми аналогично

кладу в vars/ в корне проекта специфичные переменные для настройки окружения и включаю их в плеи.

может опытные пользлватели подскажут больше по техникам, я относительно недавно вошел
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Konstantinn M
Мне надо для шаблона специального в хтмл формате в котором будет список серверов server1, server2, server3.. Как еще иначе это сделать.
можно попробовать начать отсюда https://stackoverflow.com/questions/36328907/ansible-get-all-the-ip-addresses-of-a-group
источник

A

Alexei in ansible — русскоговорящее сообщество
Maksim Sharov
ты хочешь определить переменную для группы или хоста?

работать так https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
хостовые переменные лежат в host_vars/<имя твоего хоста>.yml, с групповыми аналогично

кладу в vars/ в корне проекта специфичные переменные для настройки окружения и включаю их в плеи.

может опытные пользлватели подскажут больше по техникам, я относительно недавно вошел
У меня в hosts - это список серверов к которым будет применен плейбук., Дальше есть список переменных, в которых прописано - сервер1 (это получается item1) - на нем сайт item11 c настройками item111, item112,  сайт  item12 c настройками item111, item112,
и аналогично с сервером2 - (item2) - точно такое же перечисление сайтов. Сайты на серверах - не пересекаются (хотя в переходный момент возможно и пересечение, но это не страшно ) .
И вот для шаблонов, я хочу взять переменную  {{ inventory_hostname }} , через нее определит, на каком сервере запускается плейбук, и перебрать все сайты, и создать для них конфиги.
источник

KM

Konstantinn M in ansible — русскоговорящее сообщество
Ну надо попроще без промежуточных файлов - там и так очень много конструкций уже в плейбуке. И более того список серверов совершенно разный может быть и меняться - надо просто это как то в переменную заворачивать весь [servers ] и вываодить список этот в файл шаблона из переменной.
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Alexei
У меня в hosts - это список серверов к которым будет применен плейбук., Дальше есть список переменных, в которых прописано - сервер1 (это получается item1) - на нем сайт item11 c настройками item111, item112,  сайт  item12 c настройками item111, item112,
и аналогично с сервером2 - (item2) - точно такое же перечисление сайтов. Сайты на серверах - не пересекаются (хотя в переходный момент возможно и пересечение, но это не страшно ) .
И вот для шаблонов, я хочу взять переменную  {{ inventory_hostname }} , через нее определит, на каком сервере запускается плейбук, и перебрать все сайты, и создать для них конфиги.
вот непонятно что имеешь ввиду

Дальше есть список переменных, в которых прописано - сервер1 (это получается item1) - на нем сайт item11 c настройками item111, item112,  сайт  item12 c настройками item111, item112, 

почему не сделать файл host_vars/item1.yml и его заполнить переменными? аналогично для других хостов
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
из того, что ты объяснил, выглядит, что ты хочешь какой-то сложный словарь, но ансибл предоставляет возможность расположить файлы в специальных директориях с нужными названиями и они будут читаться как надо.

и не нужно этой вложенности
источник

A

Alexei in ansible — русскоговорящее сообщество
Maksim Sharov
вот непонятно что имеешь ввиду

Дальше есть список переменных, в которых прописано - сервер1 (это получается item1) - на нем сайт item11 c настройками item111, item112,  сайт  item12 c настройками item111, item112, 

почему не сделать файл host_vars/item1.yml и его заполнить переменными? аналогично для других хостов
Похоже, что это то-что доктор прописал, хотя и не совсем так, как хочется, (хочется файл переменных вынести в другое место.
источник

A

Alexei in ansible — русскоговорящее сообщество
Но, сейчас сначала сделаю именно через host_vars
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Alexei
Похоже, что это то-что доктор прописал, хотя и не совсем так, как хочется, (хочется файл переменных вынести в другое место.
если тебе хочется как-то по-другому, то ты будешь бороться с ансиблом и страдать

host_vars, group_vars - туда лучше, они сделаны именно для этого
источник

A

Alexei in ansible — русскоговорящее сообщество
Спасибо, для начала буду именно так)
источник

KM

Konstantinn M in ansible — русскоговорящее сообщество
Еще вопросик. Например при запуске плейбука использовались тэги -t tag1,tag2..
источник

KM

Konstantinn M in ansible — русскоговорящее сообщество
как можно эти значения в переменную завернуть чтобы так же вывести их
источник