Grek 🇺🇦
Я вынес это в локальные факты на машины в facts.d
а можно подробней?
я пока себе придумал так что в инвентори для каждого окружения будет некая переменная "флаг", и по наличию ее или по ее значению в плейбуках\ролях будет выполняться или не выполняться определенные таски.
хреново что роль будет привязана к инвентарю - но тут может и уйти от ролей и все в плейбуки загнать?
Lamobot
Lamobot
Pavel
Привет!
Может я про баян буду спрашивать, но все же:
может ли на управляющем хосте ansble быть на python3 а на управляемом 2? не пинайте сильно...
Ivan
Vladislav 👻
Vladislav 👻
На маке ансибл под третьим питоном, бегаю в основном под вторым на системы, за исключением докера, там третий
Ivan
оно работает, но есть тонкости =)
Vladislav 👻
Если что, у меня на Маке ансибл под 3.8+ работал медленнее, чем под 3.7
Ivan
как минимум стоит знать о https://docs.ansible.com/ansible/latest/reference_appendices/interpreter_discovery.html
Vladislav 👻
Ааа, если мигрировать, то да, есть тонкости
Vladislav 👻
Я просто сразу под третьим поплыл
Pavel
в общем понял, всем спасибо
Grek 🇺🇦
И какой-то флаг виртуалка/хост был в обычных фактах
ansible_virtualization_type
а вот вопрос - откуда он его берет?
бывали у меня случаи когда ВМ на ESXi репортила мониторинговым агентам что она чисто железный сервер судя по manufacturer_info, из-за чего накатывались неправильные политики
Vitaliy
Lamobot
Lamobot
И да, коряво выводит :)
Sergei
господа, есть какие то варианты бескостыльные ансиблом рулить реббитом?
Sergei
юзера запилить , парольчики и тд
Andrew
Коллеги, может кто-то решал задачку:
Есть такие факты:
"u1": {
"keys": [
"key_1",
"key_2"
]
}
Нужно отдельным таском добавить в list keys значение key_3.
Как это красивее сделать? Юзать jinja2 или есть что-то более элегантное?
Vladislav 👻
Andrew
Vladislav 👻
Только хотел предложить list1+list2
Sergey
Sergey
только они парсят вывод cli, к сожалению.
Sergei
дык модули же.
модуль предполагает хождение по ссх, ибо там cli дергается, который по сети не работает, а ссх у меня нету. Ща костылить буду
Sergei
ой ой, там дергается rabbitmqctl ,только что смотрел
Sergei
не туда смотрел что ль
Sergey
В модулях - дёргается, они и рассчитаны на локальный запуск (если плагин "HTTP management API" не загружен в кролика - это единственный вариант). Но некоторых вещей и не сделать через HTTP management API (намеренно).
Andrew
Lamobot
доня.
тьфу, а я туда не дошел пушто там начались ansible tasks и я подумал что сначала надо бы проверить что вообще че-то соединяется прежде чем таски какие-то писать
спасибо, работает
Anonymous
Тема 2.10+ табу? Или можно узнать, как прошел переход?
Anonymous
Критика приветствуется
Anonymous
существует ли способ скопировать файлы с одного удаленного хоста на все другие? или только fetch модулем брать их и потом делать copy?
Sergey
Идемпотентности не будет. Будешь потом огорчаться, что авторы Ансибла не предусмотрели.
tutunak
Synchronize, там же rsync под капотом
Sergey
А в чём смысл делать странное? O_o
Sergey
Башсибл жи.
Sergey
Ок, кривой процесс, зачем здесь ансибл тогда? 😁
Sergey
Микроскоп.жпг
Sergey
Ок, попробую больше не спрашивать, зачем 😁 зачем, зачем.... Потому что!
Sergey
Ансибл в первую очередь - средство достижения идемпотентности. А если эту идемпотентность достигать не хочется - ну тогда получается башсибл.
Sergey
Я вот просто в чате часто вижу, что есть какие-то задачи, которые стоило бы автоматизировать, и вместо условного rundeck люди берут ansible.
Sergey
Хотя если посмотреть на вот эту же задачу автоматизации, то тебе придётся ещё и разные кнопочки приделывать, чтобы эти самые раскладывающие файлы люди могли запускать синхронизацию.
404
пусть люди не раскладывают на одну из целевых машин, а кладут в репу, а ansible берет из репы и кладет на целевые машины
Sergey
Ты видел, сколько всякой дряни нужно awx?
Sergey
Ну а толку-то? Используется, но при этом ресурсов жрет как не в себя.
⎈
Vladislav 👻
Так и есть
Vladislav 👻
Главное понять, где и как проще сделать, чтобы не упороться
Vladislav 👻
Я серверные настройки выносил в переменные, а сайтовые почти целиком описывал в одной переменной, с поправкой только для ssl и проксирования
Anonymous
Спасибо! теперь другой вопрос, мой inventory выглядит вот так
Anonymous
[lisp-compilers]
lisp-compiler-01 ansible_host=10.0.0.12
lisp-compiler-02 ansible_host=10.0.0.64
Anonymous
таск вот такой
Anonymous
- name: fetch Lisp compiled lib
fetch:
src: /opt/lisp/wkt.l
dest: lisp/files/libs/wkt.l
flat: yes
when: inventory_hostname = 'lisp-compiler-01'
Anonymous
при запуске
Anonymous
FAILED! => {"msg": "The conditional check 'inventory_hostname = 'lisp-compiler-01'' failed. The error was: template error while templating string: expected token 'end of statement block', got '='
Anonymous
ЧЯДНТ? как мне еще можно запустить данный таск только на определенном хосту?
Sergey
Связь между тасками и хостами - параметр hosts плея. Остальное - странное.
Alex
Sergey
А тебе нужно ==
Anonymous
блин, вот я до*еб...спасибо!
Anonymous
запарился чет)))😜
Alex
это же классика в ЯП if ( x = y ) …. )))
Anonymous
в Лиспе =
Vyacheslav
Всем привет, ребят подскажите как в combine передать переменную?
jsondata: "{{ jsondata | default([]) | combine({ 'fluentd-address': {{ agent_socket_path }} }) }}"
Vyacheslav
agent_socket_path - переменнаяя
Anonymous
еще вопрос, у меня на виртуалке 2 карточки, как мне с помощью ansible_default_ipv4.address вытащить айпишник со второй карточки? помнится года 3 назад делал что то типа такого ansible_default_eth1_address но чет не прокатывает
Sergey
Anonymous
ок) за давностью лет не помню) ansible_eth1.address чот типа такого было)
Anonymous
Ща позырю через
Anonymous
- debug: var=ansible_all_ipv4_addresses
Gregory
SugarPie ansible_<interface_name>.ipv4.address