Nklya
Единственный момент, что не все книги одинаково полезны. Pakt'овские зачастую весьма так себе.
Ansible for DevOps герлинга ок
kbks
спасибо
kbks
поскролю
Albert
Я в свое время распечатал introduction и playbooks не люблю читать с монитора). Заняло мне 3 дня все прочесть.
Скажу сразу, более подробной и в то же время короткой (!) документации я не видел. 99% последующих проблем с ансиблом, я просто вспоминал что где то об этом уже читал, и находил ответ очень быстро (так как знал на какой странице искать).
Albert
kbks ^
Alexander
лайкните, если считаете доработку полезной https://github.com/ansible/awx/issues/508 возможно, это повысит приоритет
Alf 🙀
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 мегабайт, то экономия на спичках.
Dmitry
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
Если скрипт должен постоянно работать, то это больше похоже на сервис. Почему бы тогда его не подсунуть системд
Anonymous
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 а точно проходишься по той группе ?
Sergey
O
ну чтобы переменные подтянулись из group_vars ты когда проходишься должен попадать хостом в ту группу, или что ты имел ввиду ?
O
или попробуй set_fact = твоей переменной и уже fact передавай в плагин
O
так хоть точно можно узнать попадает ли до таска с плагином переменная
Sergey
я уже раскурил
O
localaction ?
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 формате?
Alf 🙀
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 🙀
на самом деле "ТЗ" выглядит как сделай нам дропбокс между хостами, но с синхронизацией неизвестных папок с неизвестным количеством хостов.