Nklya
Единственный момент, что не все книги одинаково полезны. Pakt'овские зачастую весьма так себе. Ansible for DevOps герлинга ок
kbks
спасибо
kbks
поскролю
Albert
Я в свое время распечатал introduction и playbooks не люблю читать с монитора). Заняло мне 3 дня все прочесть. Скажу сразу, более подробной и в то же время короткой (!) документации я не видел. 99% последующих проблем с ансиблом, я просто вспоминал что где то об этом уже читал, и находил ответ очень быстро (так как знал на какой странице искать).
Albert
kbks ^
Alexander
лайкните, если считаете доработку полезной https://github.com/ansible/awx/issues/508 возможно, это повысит приоритет
maniac
вопрос про Ansible Tower, можно ли как-нибудь ограничить список полей в ответе на запрос вида GET https://<TOWER_API_DOMAIN_NAME>/api/v2/job_templates/?fields=id,description ?
maniac
предыдущая нить дискуссии
Alexander
Alexander
v1, теперь вот v2 сделали
Alexander
ну и вот к нему модули сделали, но не всё они покрывают, не все методы далеко
Alexander
модули tower_* работают через модуль tower cli питона, который в свою очередь уже и лезет на API
Alexander
ну и вот этот API не умеет отдавать только часть полей
Alf 🙀
я не смотрел в awx, заранее сообщаю, просто то что вы хотите, выглядит как json parser, с учетом того что https://<TOWER_API_DOMAIN_NAME>/api/v2/job_templates/ возвращает вам json со всем полями.
Alexander
да) это без проблем можно сделать скриптом на питоне, например или как-нибудь ещё, но правильнее всего - попросить Tower не возвращать ненужные мне поля
Alexander
то есть было бы круто научить Tower на своей стороне фильтровать json и возвращать только то, что просят, например, путём явного перечисления через ?fields=fieldname1,fieldname2
Alexander
возможно, есть более правильная реализация запроса, не знаю, но меня бы так устроило
maniac
вообще тогда уже лучше вкорячивать туда полноценный язык обработки джейсона типа jmespath (но я всё еще считаю что лучше выгребать всё и фильтровать на клиенте)
Alf 🙀
имхо правильнее фильтровать на клиенте
Alexander
не лучше потому что медленнее будет
Alexander
например, если нужно выбрать поля id и description по вообще всем объектам в базе
Alf 🙀
для вот такого вот можно и напрямую в базу сходить, пожалуй
Alexander
близкая аналогия - если вы делаете запрос к базе данных, вы же не пишете select * from table и потом вручную что-то там на клиенте фильтруете, вы хотите sql запросом достать нужное, а остальное оставить...
Dmitry
имхо если платите за tower отправьте feature request...
Alexander
про сходить напрямую в базу - да, это решение, но оно не будет работать стабильно
Alexander
обновление тавера может обновить структуру таблиц
Alexander
да если будет в это упираться - я сам пропатчу)
maniac
так и джейсон-выхлоп не факт что стабилен
maniac
ну и блин, что там фильтровать, что тут фильтровать. если данных не 100 мегабайт, то экономия на спичках.
maniac
а, ну хотя апи-то версионирован
Alexander
и это причина использовать именно api
Alexander
а не лезть в базу
Alf 🙀
фильтруйте жисон. самое простое.
Dmitry
Ну а что надо сделать-то? большинство консольных задач по обработки json решается при помощи jq
Anonymous
Всем привет! Подскажите, пытаюсь запустить удаленно скрипт, который должен постоянно работать. запускаю через &. Запускается, но тут же после завершения ansible-таски скрипт останавливается. Что можно сделать, чтобы этого не происходило?
Alexey
&& ?
Anonymous
Разобрался, вот так вот сделал: tasks: - shell: "MyCommand >/dev/null 2>&1 &" async: 10 poll: 0
Sergey
screen -dmS
Sergey
Nklya
Если скрипт должен постоянно работать, то это больше похоже на сервис. Почему бы тогда его не подсунуть системд
Sergey
Всем привет! Пишу свой action_plugin, столкнулся с тем, что он не видит переменную из group_vars, переданную как один из параметров. У кого-нибудь есть сходный опыт?
Anonymous
Как можно выполнить команду pwgen и присвоить переменной значение, которое отдала эта команда?
✙ DarkKC ✙
shell: pwgen 15 1 register: pwout
✙ DarkKC ✙
и юзать pwout.stdout
✙ DarkKC ✙
вроде так
Denis 災 nobody
мне предложили неплохой вариант через lookup
Denis 災 nobody
{{ lookup('password', '/dev/null') }}
Denis 災 nobody
http://docs.ansible.com/ansible/latest/playbooks_lookups.html#the-password-lookup
✙ DarkKC ✙
хм, мило, спасибо
O
@tnt4brain а точно проходишься по той группе ?
O
ну чтобы переменные подтянулись из group_vars ты когда проходишься должен попадать хостом в ту группу, или что ты имел ввиду ?
O
или попробуй set_fact = твоей переменной и уже fact передавай в плагин
O
так хоть точно можно узнать попадает ли до таска с плагином переменная
Sergey
ну чтобы переменные подтянулись из group_vars ты когда проходишься должен попадать хостом в ту группу, или что ты имел ввиду ?
группа - та. переменная - та. просто action_plugin выполняется в контексте мастер-хоста и знать ничего не знает про переменные target-хоста
Sergey
я уже раскурил
O
localaction ?
Sergey
localaction ?
нет, просто action_plugins так устроены
Dmitry
Example Playbook roles: - role: jnv.ldap-auth-client tags: ldap ldap_auth_config: ldapns/base-dn: type: string value: "dc=example,dc=net" ldapns/ldap-server: type: string value: "ldaps://ldap.example.net" pam_password: type: select value: exop dbrootlogin: type: boolean value: false Как все эти параметры перенести в group_vars в ini формате?
Dmitry
плоский который
Dmitry
читать легче его
button
🤣
Dmitry
чяднт
Alf 🙀
чяднт
http://ansible-manual.readthedocs.io/en/latest/intro_inventory.html#splitting-out-host-and-group-specific-data
Dmitry
и? там ни слова о том что я хотел узнать
Dmitry
я не втыкаю как эти переменные из плейбука в груп варс файл положить
Dmitry
он в ini формате
Alf 🙀
там написано что group_vars только yaml
Alf 🙀
ini в самой инвентори
Dmitry
блин
Gleb
Зачем тебе их удобно читать то ?
Gleb
Удобно кому?
Sergey
Здесь мелькало такое обсуждение, если мне память не изменяет, летом. Особо запомнилось как раз вот этим вот "неизвестные папки" в середине пути. Не получилось?
Alf 🙀
мне одному кажется что это мануальная аллюзия на syncthing зачем то с полимаршем?
Sergey
Раз уж обсуждаем ТЗ - polemarch стоило бы выкинуть нафиг изначально. Версию 0.0.9 в продакшн пускать - гхм..... Есть и другие штуки с поддержкой Ansible inventory и прочего.
Alf 🙀
на самом деле "ТЗ" выглядит как сделай нам дропбокс между хостами, но с синхронизацией неизвестных папок с неизвестным количеством хостов.