Alexandr
Тебе нужна одна *nix like машина она же control. На машинах где должно что-то произойти с помощью ансибла, нужен питон для *nix, powershell от 3 версии для windows(+настройка winrm). Дальше лупишь плейбуками/адхоками по своим машинам
Павел П.
Всем привет. Не решал ли кто проблему удаления сервера на заббиксе из определенной группы хостов? Добавлять в одну группу, не удаляя из остальных удобно, включив force:no в модуле zabbix_host. А вот удаление не пойму как сделать не прибегая к программированию на ямле..
Sergey
Всем привет. Не решал ли кто проблему удаления сервера на заббиксе из определенной группы хостов? Добавлять в одну группу, не удаляя из остальных удобно, включив force:no в модуле zabbix_host. А вот удаление не пойму как сделать не прибегая к программированию на ямле..
Я с Z. не работаю, но здравый смысл говорит о том, что ты делаешь #странное. Не надо так. Группы дожны разливаться одномоментно, иначе ты взаправду превратишься в senior YaML developer'а.
Павел П.
В целом - согласен. явно описать в каких группах должен быть хост - оно правильнее. Попробую решить административно а не технически)
Павел П.
через апи же
это уже и будет программирование кмк)
Womchik
а модуль типа не через api работает 😊
Павел П.
получить список всех групп где лежит хост, сохранить в дикт какой, удалить ненужную, добавить по-новой
Павел П.
а модуль типа не через api работает 😊
через него, да. Но вот кейс "удалить из определенной группы не удаляя из остальных не известно и не важно каких" не покрывает
Павел П.
челленджево)
Sergey
челленджево)
Но честно
Rasim
Привет, ребята, помогите пожалуйста. есть такой кусок group_var zabbix_interfaces: - { type: "1", port: "10050" } - { type: "4", port: "8686" } и есть кусок handler interfaces: - type: "{{ item.type }}" main: 1 useip: 0 dns: "{{ ansible_fqdn }}" port: "{{ item.port }}" loop: "{{ zabbix_interfaces }}" выдает '<' not supported between instances of 'str' and 'int'\n пробовал так, не помогло: - type: "{{ item.type|int }}" port string, type int, судя по документации к api где может быть ошибка?
Anton
Господа, есть кто компетентный в AWX? Создание smart inventory по переменным у хоста? Не нравится мне подходить к созданию смарт инвенторя через variables.regex:<имя переменной>.*<значение переменной> есть какой-то более рабочий вариант?
Vladislav 👻
да и порт тоже
Rasim
в group_var: type: 1 и type: 4 (без кавычек)
пробовал. но еще попробую
Gleb
https://github.com/ansible/ansible/issues/33067 https://github.com/ansible/ansible/issues/24425 есть идеи как с этим жить? | string не особо помогает
Vadik
Всем привет )) Такой вопрос можно ли подключить один файл со всеми пееменными для ролей типа у меня есть ^ --- - hosts: master become: yes remote_user: root become_method: su roles: - { role: package } - { role: postgres } Хочу к ним подключить все переменные чтобы не писать в каждой роли по отдельности в file package/vars ?
Vadik
можешь кинуть пример небольшой я до этого просто использовал внутри плейбука все, а тут уже не получается так
Pavel
можешь кинуть пример небольшой я до этого просто использовал внутри плейбука все, а тут уже не получается так
если сделано по фен-шую (у меня так: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#alternative-directory-layout) inventories/ production/ group_vars/ - тут файл с именем группы (или all.yml - для всех групп) и в нем нужные переменные или можно в корне ансибля папку group_vars/ с файлом группы или токже all.yml - но тогда это будет для всех нивентори
greydjin
кто-то пользуется ансибл ролью публичной, для разворачивания постгре мастер-слейв?
greydjin
может в галакси что покажите или статью где описана роль. хочу роль с отзывом. пока нашел такое https://opensourceforu.com/2019/02/devops-series-configuring-a-postgresql-master-slave-setup-using-ansible/
Sergey
https://github.com/ansible/ansible/issues/33067 https://github.com/ansible/ansible/issues/24425 есть идеи как с этим жить? | string не особо помогает
Есть. Я создал переменные заволченные, потом их через филтр прогоняю. Всё.
Gleb
а если я перед этим упорото попрограммировал на джиндже такой дичи как [servers.attributes] {% for k,v in service.servers.attributes.items() %} {{ k }} = {{ v | to_nice_json }} {% endfor %}
Gleb
даже вот так
Sergey
Да без разницы.
es]x
доброго подскажите по чему после подключения перемыных через файл include_vars: file: vm_names_ips.yml говорит что переменая не определенна name: yum update packages yum: name: '*' state: latest update_only: True become: True delegate_to: "{{ item.1 }}"
es]x
туплю простите, забыл про loop
A
Всемм привет! Какую версию yaml использует ansible? что то немогу найти...
Timur
YAML 1.1
Αλέχ
уже и YAML 1.2, судя по референсам в официальной доке https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
A
а в чем важность вопроса?
Я пытаюсь понять какую либу python использовать для создания yaml файлов.
Αλέχ
более точно сказать тяжело, но из того, с чем мне приходится постоянно сталкиваться, синтаксис получается комбинированный: yaml 1.2 + вкрапления jinja фильтров + python словари
Старый
http://dpaste.com/0838NZ2 кто юзает ансибл для firewalld 7
Anonymous
http://dpaste.com/0838NZ2 кто юзает ансибл для firewalld 7
1. В чём вопрос? 2. Зачем в этом примере rich rule? Если твой пример не работает (нет возможности проверить), то вот так оно работает у меня --- - name: open scylla ports firewalld: port: "{{ item }}/tcp" permanent: yes immediate: yes state: enabled zone: public loop: - 9180 - 9100 - 9042
Старый
1. В чём вопрос? 2. Зачем в этом примере rich rule? Если твой пример не работает (нет возможности проверить), то вот так оно работает у меня --- - name: open scylla ports firewalld: port: "{{ item }}/tcp" permanent: yes immediate: yes state: enabled zone: public loop: - 9180 - 9100 - 9042
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="ip" port protocol="tcp" port="9180" accept, вот команда, переношу её в ансибл сразу на 3+ порта
Старый
а руль нужна, чтобы ipv4\ipv6 ставить
Старый
тебе нужно source в rich-rule засунуть, а не в source:
https://docs.ansible.com/ansible/latest/modules/firewalld_module.html тут не слова как обычно
Отделение Bereke Bank
rich_rule: rule family="ipv4" source address="{{ hostvars[item]['ansible_default_ipv4']['address'] }}/32" accept типа так
Старый
😕чтот стрёмно выглядит
Sergey
😕чтот стрёмно выглядит
Зато из мануала :-)
Александр
так
Александр
господа
Александр
если я хочу сделать when на принадлежность к группе в hosts
Александр
как мне это прописать?
Отделение Bereke Bank
when: "'something' in group_names"
Sergey
или в роль делаешь переменную hostgroup и ссылаешься when: hostgroup == 'group1'
Sergey
- hosts: "{{ hostgroup }}" roles: - node-exporter become: true
Александр
ок спасибо
Александр
разве?
Александр
есть большой плейбук, содержащий полтора десятка ролей
Oleksandr
тебе намекают, что вместо when сразу указать где применять
Oleksandr
а так да - технически ты можешь это сделать
Александр
всмысле в плейбуке при запуске роли?
Oleksandr
ну да
Oleksandr
зачем проверять и скипать если можно не проверять и не скипать
Oleksandr
как-то так
Александр
логично
Александр
:D
Александр
ну, там от масштаба зависит, имхо
Александр
если из целой роли одна команда, то можно и в роли
Александр
а если всю роль, то проще в плейбуке
Oleksandr
если из целой роли одна команда, то можно и в роли
И ты роль привязал к группе хостов
es]x
подскажите пож в модуль command использую /bin/someapp —password={{ password }} конце пароля стоит стмвол - и в такой консрукции он отбрасывается одинарные и двойные ковычки не помогли, как быть?
Отделение Bereke Bank
#странное
Почему? 🤔
Αλέχ
чойта странное? вполне отличное решение для шаблонов/фильтров jinja
Отделение Bereke Bank
Я так у тасок делаю когда ее нужно запустить в подгруппе группы 🤔
Sergey
Потому что отбор хостов из всего инвентори делается через "hosts: group_foo", Карл, понимаешь? Через hosts!
Sergey
Для этого делается ещё одна группа.
Αλέχ
не вижу смысла плодить дополнительную группу под единичный таск или роль, когда я могу сделать выборку по префиксу в названии группы, например, или сделать эксклюд по ней