qeng
нет, дело не имени vault
Sergey
как сейчас выглядит входной yaml?
Sergey
где он лежит?
qeng
сам yaml лежит в group_vars, default из него дёргаю нормально. затык именно с шаблоном
qeng
структура такаяже как описал выше
qeng
минусы перед ip в списке servers поставил
Sergey
а в выходном файле по-прежнему проценты? O_o
qeng
в этом шаблоне. один символ, да. тот, куда default дёргается, всё хорошо
Sergey
а если IP-адреса, используемые в качестве названий словарей, попихать в кавычки, и спрашивать именно их? просто items?
qeng
про спрашивать именно их не понял
qeng
в общем, всё вы правильно подсказали, проверил на http://jinja2test.tk/
qeng
осталсь одна загадка, почему на выходе у меня только один символ - %
Dima
Aleksey
а лучши эмотиконами
Dima
Dima
Aleksey
да да я про нееже
Dima
emojifuck - замена brainfuck.
Dima
или ещё вот прекрасный пример - YOPTASCRIPT :)
Dima
ксива.малява("Я и правда язык") нах
qeng
Dima
ну баг зарегай в ansible, последний способ найти решение. либо узнать что оно через уменьшение этажности вложенных списков.
Andrey
привет. подскажете, в ansible 2.3 как то можно обратиться к имени инвентаря как к переменной?
t3
Гайс, хочу деплоить пользовательский публичный ssh-ключ. Как лучше организовать? Т.е. мне нужно из консоли указывать путь к файлу или сам ключ, пока не очень понимаю как это нормально сделать
t3
Есть вариант, конечно, с указанием ключа в ENV, но об этом тоже надо помнить или в роль смотреть
t3
Хм. Хотя ansible-way, наверное, для каждого хоста все ключи заносить в переменную/файл и хранить в git. Ибо иначе не идемпотентно будет
Dima
http://docs.ansible.com/ansible/authorized_key_module.html
Dima
примерчики всякие тоннами
Bogdan (SirEdvin)
Dmitry
Можно vault юзать
Dmitry
Если прямо очкуешь
Dmitry
Делать роль, класть ключи в files
Dmitry
А там уже опционально волтом
Andrey
По-моему вполне нормальная практика хранить публичные ключи в открытом виде
✙ Bogdan
Я вообще lineinfile юзаю
Dmitrii
Dmitrii
https://github.com/%USERNAME%.keys
Dmitrii
Высрет все ключи для юзера
Dmitrii
А, перепутал гит и гитхаб ) Но не беда. Этот вариант тоже может быть полезным :)
Dima
gitlab вроде также ключи отдаёт
Sergey
подтверждаю. gitlab точно так же отдает ключи
Bogdan (SirEdvin)
Лол, буду знать
hackru
надо сразу в роли с гитхаба брать ключи
hackru
а задавать только логины
hackru
:)
roquie
Как в ansible организовать структуру так, чтобы деплой был возможен и с рабочего компа, и из CI? Поясню. У меня в инвентаре расписана прод-конфигурация, у которой изменены значения путей до файлов проекта. То есть для CI одни пути до файликов, для деплоинга прода из моего компа другие. Не могу организовать структуру конфигов так, чтобы оба файла прод-конфигурации не дубдировались. Нужно что-то типа инклюда из базового прод-конфига в 2 конфига под разные системы. Никто таким не маялся?
inventory
-- group_vars
---- local.yml
---- prod-ci.yml -> здесь отличается только пара переменных и все, а по факту копипаста
---- prod-local.yml -> здесь отличается только пара переменных и все, а по факту копипаста
-- hosts
Хотелось бы иметь какой-нить base-конфигурашку, чтобы различные параметры подтянуть в спец. конфиги под систему. Есть какие идеи? Ни лимит групп (как здесь), ни разбивка по разным файлам инвентарей не помогла.
Dima
в репозиторий с кодом для каждого микросервиса кладётся плейбук, который его билдит и катит из ci на dev/stage/prod. через плей с local_action скрипт синхронизирует локально inventory и перешифровывает vault для ci. среда куда катить задаётся переменной. кнопка в ci = среда, из которой вызывается плейбук, куда подставляется переменная.
roquie
Думаю уже над этим, хотя может есть решение получше
http://docs.ansible.com/ansible/include_vars_module.html
Dima
inventory может быть папкой, -i inventory-prod/ (а там файлы)
roquie
Как раз сейчас так и сделано, через папку. Но проблема не в том, куда положить. А в том, что конфигурашка дублируется. То есть, если я деплою через CI, работает папка inventory-prod, если через свой комп (CI - сломался, например), работает папка inventory-prod-local, чтобы он мог взять файлики из нужных папок. При этом получаем полную копию yml-конфигов для продакшена. То есть, если я захочу сменить ключик мандрилла, обязан это делать в двух местах.
Dima
а vault у тебя тоже одинаковый в ci и локально?
roquie
Его пока нет, но допустим он одинаковый.
Dima
просто тогда один любой сотрудник забыл ноут в кафе - меняй все пароли, называется...
roquie
ну это да, но тем не менее, удобнее проверять работоспособность написанных тасков на локальной машине, а не делать по 100 коммитов в гит и затем сквэшить ...
Константин
сотрудники с ноутбуками должны уметь в полнодисковое шифрование - утечка кода с прода это как-то хуже, чем пароли от ансибла
Dima
Dima
выкатить такой же прод и попасть на готовый прод - из двух зол меньшее.
Dima
нашел в коде: {{ item.item.item }}
Dima
работает.
Aleksey
отпизди сам себя.
Dima
уже.
Dima
кто писал - не найти. (и это хорошо)
Aleksey
git blame не ?
Dima
не, не найти. при миграции в новый gitlab .git папка потерта оказалась.
Aleksey
а. ну ладно. так и запишем. заметал следы.
✙ DarkKC ✙
✙ DarkKC ✙
просто прими как есть, выпей пивка
✙ DarkKC ✙
и найди того. кто позволил себе сделать это.
Konstantin
пипл, чот нифига придумать не могу, можно как-то вытащить адресс конкретного физ интерфейса?
Konstantin
или только явно ens160, eth0?
niko
А что для тебя конкретный интерфейс?)
Konstantin
ну хз, номер? )
Konstantin
ну если брать стандартную практику:
1. wan
2. lan
как ансиблом выбирать нужный?
Konstantin
!= default? :)
Konstantin
{{ ansible_all_ipv4_addresses | ipaddr(my_network)| first }}
✙ DarkKC ✙
А подскажите-ка, сработает ли такой финт ушами
with_dict: "{{ some_tasks }}"
register: task_result[{{ item.name}}]
✙ DarkKC ✙
дабы результаты для каждого таска из with_dict в отдельный кусок массива сложить?