Vlad
А там же list of dicts. Можно map или json_query использовать
Vlad
‘My_package’ not in (ansible_facts.packages | map(attribute=‘name’) | list)
Sergey
хочу when: ansible_facts.packages[‘my_package’] is not defined
Ты опять странное пилишь? 😊
Sergey
Что должно происходить по этому "when" ?
Dmitry
но я вроде разобрался
Michael
Народ, доброго всем! При запуске плейбука на установку mysql (брал из галактики), в процессе сбора фактов вылетает сообщение об ошибке и выполнение останавливается: fatal: [centos-hel1-1]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
Michael
Подсказка: в каком случае команда sudo ругается вот так: sudo: a password is required?
так везде ключи прописаны - зачем оно ему? тем более что подключение от рута и происходит
Sergey
Если нет желания обсуждать - все ответы здесь: https://docs.ansible.com/ansible/2.7/user_guide/become.html#understanding-privilege-escalation
Michael
Да не. Желание есть. Я параллельно еще несколько вариантов попробовал. Вот по этому совету: https://stackoverflow.com/questions/21870083/specify-sudo-password-for-ansible Только вот не пойму почему правильным оказался пароль от ключа?!
A
with_items: - '{{ outer_item.sites }}' loop_control: loop_var: local_item
Сегодня в доке нарыл, правильнее передавать вары так: - Import_tasks: slave.yml vars: mname: "{{ master_name }}"
Павел П.
но я вроде разобрался
Доброе) а как сделали в итоге?
Dmitry
Доброе) а как сделали в итоге?
Dmitry Nagovitsin: хочу when: ansible_facts.packages[‘my_package’] is not defined
Dmitry
Вот так
Dmitry
Просто был дебаг в котором не было проверки и он падал
Павел П.
Ясно, спасибо!
Павел П.
Добрый. Небольшая непонятка по модулю iptables, уже гуглил и вернулся сюда: Поскольку для ансибла state - это absent/present, не получилось создать правило -m state --state RELATED,ESTABLISHED вместо него параметр ctstate создавет другое правило - -m conntrack --ctstate RELATED,ESTABLISHED Вопросы: Чего я мог не заметить в документации? Как сделать чтоб получить state: неужели использовать модуль iptables_raw ?
matt
но -m state --state же устаревшее, и вместо него используется --ctstate
Павел П.
🤔 спасибо! Тогда оставлю пока так)
Vladislav 👻
Подскажите, а кто как докер контейнеры разворачивает? В плане, на удаленный хост ставите либу и рулите там или локально настраиваете docker-machine и рулите локально?
Vladislav 👻
А может есть еще какой-то вариант?
Vladislav 👻
я про ансибл и спрашиваю
Dmitry
+модуль соответсвующий
Vladislav 👻
для модуля нужна либа на питоне, можно рулить сразу на удаленном хосте, а можно через локальный докер-машин, вопрос, кто как делает?
Artur
что мешает на удалённом хосте сгенерить docker-compose и запустить его там ?
Dmitry
там был правда противный баг - для того чтобы сделать докер логин, нужна одна либа, а для работы с докером другая. И вот они несовместимы
Dmitry
ставим либу - делаем докер логин, сносим либу )
Vladislav 👻
🙈
Vladislav 👻
а локально никто не пробовал через докер машин?
Dmitry
питоновая экосистема чо )
Dmitry
через модуль реально удобно
Artur
не надо
чем плох ?
Dmitry
не знаю зачем мудрить
Vladislav 👻
через модуль реально удобно
через модуль, но локально
Vladislav 👻
не надо тащить гавно на удаленный
Dmitry
чем плох ?
вырастает дикая лапша в темплейте потом
Dmitry
ну такое
Vladislav 👻
ну они нафиг не нужны там
Dmitry
ну они нафиг не нужны там
ну блин - ты спросил кто как, я ответил )
Dmitry
я же не заставлю ьащить
Vladislav 👻
я понял, мне вот интересно, есть кто локально через модуль рулит?
Dmitry
вот кому то и докер композ геренит, тоже в принципе норм тема
Dmitry
мы так солтом делаем
Dmitry
ну т.е. когда у тебя есть какой то узкий набор случаев то да
Dmitry
а если ты крутишь кучу докеров у тебя всевозможные варианты, то будет лапша
Dmitry
но я там выше писал - я никого не убеждаю
Dmitry
я просто генерировал тоже композы, потом понял что я тоже самое с модулем сделаю проще
Dmitry
зачем мне прокладка лишняя? копмилить ямли в ямли?
Dmitry
если у вас все на композах и вообще и вы так привыкли типа - то почему нет
Vladislav 👻
я так понимаю, просто переносится композ файл и сервис темплейт на этот композ
Vladislav 👻
А можно как-то "лимитировать"/"тегитировать" список из варс?
Vladislav 👻
Задача проста, мне надо разложить разные конфиги (один темплейт) в разные места (в варсах путь)
Vladislav 👻
Но хочется при этом гибко управлять, чтобы разложить только один конфиг например
Konstantin
Всем привет. Я снова с немного странным вопросом. Он обусловлен инфраструктурным legacy. у меня в group_vars/all декларировано три переменных service_dev_port , service_test_port, service_prod_port сами окружения (dev,test,prod) уже разбиты на отдельные inventory, в каждом inventory есть переменная Environment и равна соотв dev, test, prod в зависимости от окружения. Но очень часто у нас бывает ситуация, что при тестировании (инвентори test) используются сервисы из dev ( и наоборот, не спрашивайте почему так, legacy очень жетский и олдскульный). Мой вопрос такой, я могу как-то в роли сделать вызов a la: service_port = service_{{ Environment }}_port ? Надеюсь понятно объяснил вопрос =)
Dmitry
вот такой вопрос еще - есть /sys/kernel/mm/ksm/run в который надо записать 1
Dmitry
и я получаю permission denied
Dmitry
запускаю плейбук не под рутом на уд хосте, делаю become: true в плейбуке, на самой таске попробовал дописать become_user: «root»
Dmitry
не работает
Dmitry
Selinux?
деб
Sergey
sestatus проверь всё-таки
Konstantin
{{hostvars[host]['service_'~env~'_port']}}
Не очень понял синтаксис, где матчасть почитать?
Konstantin
меня ~ смущают 🙂
Sergey
Оператор сцепления строк в джиндже
Sergey
Как точка в пыхе
Konstantin
Оператор сцепления строк в джиндже
Ага, спс. Хотя пы не мое 🙂
Konstantin
осталось в роль присобачить