Gubaydullin
Добрый день
как правильно вызывать фильтр crc32
https://github.com/ansible/ansible/pull/17178/files/1f0c06e88b21cb9c20c56f07b287fbe958a9e029
| crc32 или | crc32('crc32')
спасибо
Max
Подскажите как ансиблом легче всего в существующий kubeconfig (yaml файл) добавить credentials от нового кластера, если их там нет?
UglyKoyote
а разве кубцтл не умеет добавлять креды? я к тому - что бы дернуть шеллом, хотя выглядит как костыль
Max
UglyKoyote
просто я ансиблом с кубом не работал, чисто ансиблом ставлю кубер. поэтому не знаю про модуль детали
Full
Народ, есть вопрос про инвентори.
Например, инвентори может быть не файлом, а директорией. И там могут быть директории group_vars, в которых переменные группы узлов web (к примеру), будут лежать в директории web, и это все будет работать.
Т.е. получится какая-то вот такая структура:
inventory
├── global.yml
├── group_vars
│ └── web
│ ├── 00.yml
│ └── main.yml
└── host_vars
├── web_01
│ └── main.yml
└── web_02
└── main.yml
При этом, то, что описано в inventory/host_vars/web_02/main.yml равнозначно тому, если бы это было описано в едином файле инвентори в:
...
hosts:
web_02:
Собственно, вопрос - насколько глубока кроличья нора? Могу ли я приведенном выше примере создать директорию vars, и разместить там различные файлы с переменными. Или я могу пойти дальше, и сделать vars/my_app, и разместить что-то там?
Vladislav 👻
Вроде можно, но слишком много папок сложно, обычно там хватает файлов по имени сервиса/роли
Anonymous
Ну вам наверное проще делать через зависимость. Как вы хотите немного изврат
Full
Про зависимость - можно чуть подробнее?
Full
Aleksey
Народ, есть вопрос про инвентори.
Например, инвентори может быть не файлом, а директорией. И там могут быть директории group_vars, в которых переменные группы узлов web (к примеру), будут лежать в директории web, и это все будет работать.
Т.е. получится какая-то вот такая структура:
inventory
├── global.yml
├── group_vars
│ └── web
│ ├── 00.yml
│ └── main.yml
└── host_vars
├── web_01
│ └── main.yml
└── web_02
└── main.yml
При этом, то, что описано в inventory/host_vars/web_02/main.yml равнозначно тому, если бы это было описано в едином файле инвентори в:
...
hosts:
web_02:
Собственно, вопрос - насколько глубока кроличья нора? Могу ли я приведенном выше примере создать директорию vars, и разместить там различные файлы с переменными. Или я могу пойти дальше, и сделать vars/my_app, и разместить что-то там?
а разве 00.yml будет читаться ?
Full
Ээээ, а почему нет?
Aleksey
а. да я с defaults перепутал
Vladislav 👻
Там все будет читаться в порядке сортировки
Aleksey
да да. я протупил. я почему то думал что в group_vars должны быть файлы а не директории
Алексей
Коллеги, с праздником! Посоветуте как лучше реализовать следующую задачу: есть несколько сетевых устройств, на них необходимо выполнить простую задачу(ну например узнать хостнейм), НО некоторые устройства могут быть недоступны И об этом факте необходимо сообщить администратору на почту. Я сейчас сделал следующее: первым таском собираю факты с устройств при этом игнорируя ошибки( ignore_errors: True) вторым таском помещаю в block вывод фактов с доступных узлов в файл, а в rescue сделал вывод в другой файл переменной inventory_hostname. Но при этом все работает с опцией serial: 1 иначе в файле куда пишутся недоступные устройства происходит непонятная магия.
Volodymyr
jinja2 корявит XML с for, куда мне смотреть?
Aleksey
[IPT] Dmitry
я тут хочу словарь со списком списков словарей. это нормально или наркомания?
Alex
[IPT] Dmitry
ребят, я хочу структурировать данные в yaml и работать с ними. и в итоге рендерить из них что-то типа:
tag1:
- rule1:
key1: value1
key2: value2
- rule2:
key1: value1
key2: value2
tag2:
- rule1:
key1: value1
key2: value2
- rule2:
key1: value1
key2: value2
мне хотелось бы из этого собирать файл типа
tag1
rule1 + key1 + key2
rule2 + key1 + key2
tag2
rule1 + key1 + key2
rule2 + key1 + key2
Vladislav 👻
Vladislav 👻
Full
Народ, есть вопрос про инвентори.
Например, инвентори может быть не файлом, а директорией. И там могут быть директории group_vars, в которых переменные группы узлов web (к примеру), будут лежать в директории web, и это все будет работать.
Т.е. получится какая-то вот такая структура:
inventory
├── global.yml
├── group_vars
│ └── web
│ ├── 00.yml
│ └── main.yml
└── host_vars
├── web_01
│ └── main.yml
└── web_02
└── main.yml
При этом, то, что описано в inventory/host_vars/web_02/main.yml равнозначно тому, если бы это было описано в едином файле инвентори в:
...
hosts:
web_02:
Собственно, вопрос - насколько глубока кроличья нора? Могу ли я приведенном выше примере создать директорию vars, и разместить там различные файлы с переменными. Или я могу пойти дальше, и сделать vars/my_app, и разместить что-то там?
В развитие темы.
Сделал вот так:
inventory
├── global.yml
├── group_vars
│ └── web
│ ├── 00.yml
│ └── main.yml
├── host_vars
│ ├── web_01
│ │ └── main.yml
│ └── web_02
│ └── main.yml
└── vars
└── myapp
└── myapp_00.yml
В принципе, оно читает все файлы, но есть нюанс. В файле myapp_00.yml приходится описывать структуру от корня. Ну, в смысле, как-то так:
---
all:
vars:
myapp:
myapp_00:
somevar: somevalue
С одной стороны, вроде уже легче, а с другой - структура все равно не очень.
А вот как бы получить поведение, аналогичное поведению host_vars?
Т.е. хочется в файле myapp_00.yml написать просто:
---
somevar: somevalue
И обращаться потом как к myapp.myapp_00.somevar.
Vladislav 👻
Full
А иначе не принимает.
Vladislav 👻
Почему нельзя просто key: value
Vladislav 👻
Full
Момент...
Full
У меня вот так:
[WARNING]: Skipping 'somevar' as this is not a valid group definition
Vladislav 👻
А запускаете с какими ключами и параметрами?
Full
ansible all -m debug -a "var=somevar" -i inventory -k
Vladislav 👻
Я забыл, что за ключ "-a"?
Grek 🇺🇦
-e вроде задает extra_vars
Full
Vladislav 👻
Тогда фигня, на это и ругается
Full
Не. Если прописать полностью, начиная от all - не ругается.
Full
Например.
$ cat inventory/vars/myapp/myapp_00.yml
---
somevar: somevalue
$ ansible-inventory -i inventory --graph --vars
[WARNING]: Skipping 'somevar' as this is not a valid group definition
@all:
|--@ungrouped:
|--@web:
| |--web_01
| | |--{web_01_host_var = value}
| | |--{web_group_var = value}
| |--web_02
| | |--{web_02_host_var = value}
| | |--{web_group_var = value}
| |--{web_group_var = value}
Full
И с полным путем:
$ cat inventory/vars/myapp/myapp_00.yml
---
all:
vars:
somevar: somevalue
$ ansible-inventory -i inventory --graph --vars
@all:
|--@ungrouped:
|--@web:
| |--web_01
| | |--{somevar = somevalue}
| | |--{web_01_host_var = value}
| | |--{web_group_var = value}
| |--web_02
| | |--{somevar = somevalue}
| | |--{web_02_host_var = value}
| | |--{web_group_var = value}
| |--{web_group_var = value}
|--{somevar = somevalue}
Sergey
Sergey
Хочешь развесистых конструкций - пиши плагины. Хочешь простоты - сложи в host_vars/<hostname>.yml
Full
Я не хочу ямл на 1к строк, только и всего.
Full
Вероятно.
Anonymous
Я кстати ради пятница и праздника спрошу - а что условно в том 1к перемётных
Anonymous
Вам точно не нужен service discovery ?
Full
Anonymous
Пока выглядит как дичь. Я кстати схожую тему хотел месяц назад делать. Потому мнение авторитетное по творению дичи ))
Anonymous
А чем днс не угодил ?
Anonymous
Типа безумно же изи
Anonymous
Даже (не смотрел никогда есть ли модули) регуляркой
Full
Anonymous
Зачем srv записи хранить в ансибл. А не днс ?
Full
Чтоб ансибл мог сетапить bind.
Anonymous
И кстати в таком кейсе. Консул я предполагаю решит почти все ваши хотелки
Anonymous
Anonymous
Провиженг да.
Anonymous
Но остальное проще отдать под гит и ci/cd с проверкой. Прям маст хев
Anonymous
Сразу ненадо изобретать велосипед
Full
Файлы зон вручную писать?
В смысле, это то не проблема, надоело просто.
Anonymous
Чем правка записи в ансибл отличается от правки в гит ? Ну можно сделать постой интерфейс что через регулярку добавит. Но это все про манки Джоб. Если у вас сами сервисы условно появляются и вот это все. То тогда консул
Anonymous
Просто странно делать из ансибл днс сервер.
Anonymous
Ну типа на 1 раз норм. Провиженг. А след разы крайне странно
Full
У меня нет сервисов/куберов и вот этого всего. :)
Я бы рассказал, откуда такая норкомания, сейчас не с руки просто, я убжал уже от компа до понедельника (надеюсь).
Если не забуду - расскажу потом.
Anonymous
Да я понимаю. Посто подумайте над мыслью что зона в гит. А ансибл не более чем провиженг. Просто помните - когда в руках молоток (ансибл), вокруг все кажется гвоздями
Anonymous
У вас реальный самый странный кейс что я тут мимо пройдя читал за год
Alexandr
У кого нибудь есть пример как с помощью python api запустить playbook?
Sergey
https://github.com/ansible/ansible/blob/v2.9.11/lib/ansible/cli/playbook.py
Я и твой кот
Alexandr
Я и твой кот
Я и твой кот
Стиль узнаваем.
Sergey
Александр
Всем привет. подскажите почему в первой роли( которая app_name: portainer) переменная recovery_db: true ? Там ведь нет этой перменой
https://paste.ofcode.org/63nkUiNRMgwHSuvVXiZxhK