Григорий
проходит по всем переменным и засовывает их в wildfly через jboss cli
Fire
проходит по всем переменным и засовывает их в wildfly через jboss cli
Ansible используется для деплоя, разворачивания и конфигурирования wildfly?
Григорий
Только для деплоя
Григорий
В него
Fire
Только для деплоя
> jboss cli Не используете модуль https://docs.ansible.com/ansible/latest/modules/jboss_module.html ?
Григорий
Нет Его у нас нет(
Григорий
И оно в переменные не умеет
Fire
Нет Его у нас нет(
В смысле нет? какая версия ansible?
Григорий
В смысле не завезли во внутреннюю сетку
Alex
Если правильно работать со словарями - то нет проблем)
Если правильно забивать гвозди микроскопом - то нет проблем
Fire
Если правильно забивать гвозди микроскопом - то нет проблем
Списки помогают структурировать переменные.
Fire
В смысле не завезли во внутреннюю сетку
Этот модуль из стандартной поставки.
Григорий
попроще вопрос тогда есть 2 словаря: test1: a: b и test2: d: e можно ли как-то в with_items их объединить в один, чтобы вышло test: a: b d: e
Fire
Прочитай faq хотя бы
Можно поточнее, о чём Вы?
Anton
Всем привет. Подскажите плз как вывод команды зарегать в качестве переменной? - name: (OSEC) Get agent key from server expect: command: "/var/ossec/bin/manage_agents" timeout: 300 responses: Press ENTER: "" Choose your action: "E" Provide the ID of the agent to extract the key: {{ ossec_agent_id }} notify: restart ossec become: yes delegate_to: {{ ossec_server_hostname }}} а точнее ключ который выведет сервер и отдать его агенту потом. Пример вывода вот **************************************** * OSSEC HIDS v3.3.0 Agent manager. * * The following options are available: * **************************************** (A)dd an agent (A). (E)xtract key for an agent (E). (L)ist already added agents (L). (R)emove an agent (R). (Q)uit. Choose your action: A,E,L,R or Q: E Available agents: ID: 001, Name: mon-1, IP: 10.10.10.10 ID: 002, Name: php-1, IP: 10.10.10.11 Provide the ID of the agent to extract the key (or '\q' to quit): 002 Agent key information for '002' is: MDAyIHBocC0xLnNbHVnbmNvZGUub25saW5lIDUxLjg5Ljc0LjE1MyBmMTExMTUyY2I5M2U3OWM2NWM4ZTdlNjBiYjQ1ZmIzMmViMzIyMA1NjE0Yzli ** Press ENTER to return to the main menu.
Grek 🇺🇦
register: some_output а затем использовать переменную some_output, предварительно посмотрев что в ней все так как вым надо
Anton
понятно но в output попадет весь вывод команды а надо только ответ на Provide the ID of the agent to extract the key
Anton
Ну есть же parse_cli, правда я так и не понял, как спеки писать.
О спсб гляну. Похоже на promtail items: "^(?P<vlan_id>\\d+)\\s+(?P<name>\\w+)\\s+(?P<state>active|act/lshut|suspended)"
Oleg
Привет, парни. Пытаюсь установить соединение с виндовс 2019. Уже на 40 серверов скрипты поставил, соединение затестил, все норм. Теперь с другими серверами начались проблемы WINRM CONNECTION ERROR: the specified credentials were rejected by the server Traceback (most recent call last): и arnv2 | UNREACHABLE! => { "changed": false, "msg": "ssl: the specified credentials were rejected by the server", "unreachable": true } создал пользователя, добавил его в группу админы, установил порт для ансибла, он слушается. Куда еще можно капнуть?
Aleksandr
неочевидный вопрос для меня, есть роль в ней defaults a: {{ b }} b: 'some_string' это корректно, либо a должно быть определено ниже b?
Aleksey
Корректно
Aleksey
Это ленивые вычисления
Aleksey
И реально будет вычеслено значение а при её использовании
Aleksandr
И реально будет вычеслено значение а при её использовании
спасибо, не знал про ленивые вычисления, нашел в доке, стало все понятнее :)
George
СЯО (сегодня я обнаружил) что until без retries и delay делает три попытки с разумным ожиданием. --- - hosts: localhost tasks: - fail: register: res until: res is success
Alexey
Подскажите, можно как то через ansible применить такое правило? firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens160 --destination 224.0.0.18 --protocol vrrp -j ACCEPT firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens160 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
Alexey
https://docs.ansible.com/ansible/2.5/modules/firewalld_module.html
это я видел но не понял, как исполнить запрашиваемое
Grey
там есть красиво расписанный пример
Alexey
его я тоже видел видимо я тупой
Grey
firewalld: rich_rule: rule family=ipv4 filter INPUT 0 --in-interface ens160 --destination 224.0.0.18 --protocol vrrp -j ACCEPT zone: public permanent: yes immediate: yes state: enabled Status
Grey
примерно как то так
Alexey
понял огромное спасибо
☭ Andrey
Товарищи! Подскажите имеется хостс файл с группами хостов (условно): группа А подгруппа А1 подгруппа А2 .... группа Б подгруппа Б1 подгруппа Б2 группы А и Б в свою очередь объединены в Супергруппа А Можно ли дать команду типа: ansible Супергруппа А (исключая подгруппу (одну или по шаблону, чтоб сработало на все группы, кроме подгрупп таких то)) -m shell -a "что-нибудь"
A
hosts: SA:!A1:!B2
A
И --list-hosts чтобы вывести все хосты в прицеле перед выполнением
Я и твой кот
hosts: SA:!A1:!B2
Вообще странно, что многие люди об этом функционале не знают. Супер удобная штука.
☭ Andrey
Вообще странно, что многие люди об этом функционале не знают. Супер удобная штука.
я чайник) только разбираюсь, ансибл слишком крутой для моих нужд. А в плейбуке аналогично можно поступить?
☭ Andrey
даже нужно
в смысле какой вид будет иметь)?
Aleksey
прям в плее так и пишите hosts: SA:!A1:!B2
☭ Andrey
Ага, понял, спасибо, буду экспериментировать)
Grey
парни подскажите есть ли у кого готовый плейбук роли confluence ?
Grek 🇺🇦
и что должна делать эта готовая роль?
Отделение Bereke Bank
Вообще странно, что многие люди об этом функционале не знают. Супер удобная штука.
Ничего хорошего в этой фиче нет. Вместо нормального деления хостов на группы понапишут такую хуйню потом сидишь и гадаешь
Андрей
Привет Ребята, подскажите, не могу понять почему не работает есть переменная healthcheck_interval: 30s Для одного модуля она мне нужна в виде как есть (строка), а для другого просто как число. Вроде бы ничего страшного - с помощью regex_replace убираю s. Потом мне нужно добавить еще 10 к этому числу ( чтоб получилось 40 ). Но pause продолжает ее считать строкой: - name: initial value debug: var: healthcheck_interval - name: "+10" debug: var: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} | int +10" - name: wait {{ healthcheck_interval }} + 10s pause: seconds: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} int +10"Выхлоп такой: TASK [initial value] ********************************************************************************************************************************** ok: [localhost] => { "healthcheck_interval": "30s" } TASK [+10] ******************************************************************************************************************************************** ok: [localhost] => { "30 | int +10": "40" } TASK [wait 30s + 10s] ********************************************************************************************************************************* fatal: [localhost]: FAILED! => {"changed": false, "delta": null, "echo": true, "msg": "non-integer value given for prompt duration:\ninvalid literal for int() with base 10: '30 int +10'", "rc": 0, "start": null, "stderr": "", "stdout": "", "stop": null} Самое интересное, что если убрать +10 из то уже все ок😱
Отделение Bereke Bank
Привет Ребята, подскажите, не могу понять почему не работает есть переменная healthcheck_interval: 30s Для одного модуля она мне нужна в виде как есть (строка), а для другого просто как число. Вроде бы ничего страшного - с помощью regex_replace убираю s. Потом мне нужно добавить еще 10 к этому числу ( чтоб получилось 40 ). Но pause продолжает ее считать строкой: - name: initial value debug: var: healthcheck_interval - name: "+10" debug: var: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} | int +10" - name: wait {{ healthcheck_interval }} + 10s pause: seconds: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} int +10"Выхлоп такой: TASK [initial value] ********************************************************************************************************************************** ok: [localhost] => { "healthcheck_interval": "30s" } TASK [+10] ******************************************************************************************************************************************** ok: [localhost] => { "30 | int +10": "40" } TASK [wait 30s + 10s] ********************************************************************************************************************************* fatal: [localhost]: FAILED! => {"changed": false, "delta": null, "echo": true, "msg": "non-integer value given for prompt duration:\ninvalid literal for int() with base 10: '30 int +10'", "rc": 0, "start": null, "stderr": "", "stdout": "", "stop": null} Самое интересное, что если убрать +10 из то уже все ок😱
Ещё раз | int попробуй после +10
Grek 🇺🇦
Привет Ребята, подскажите, не могу понять почему не работает есть переменная healthcheck_interval: 30s Для одного модуля она мне нужна в виде как есть (строка), а для другого просто как число. Вроде бы ничего страшного - с помощью regex_replace убираю s. Потом мне нужно добавить еще 10 к этому числу ( чтоб получилось 40 ). Но pause продолжает ее считать строкой: - name: initial value debug: var: healthcheck_interval - name: "+10" debug: var: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} | int +10" - name: wait {{ healthcheck_interval }} + 10s pause: seconds: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} int +10"Выхлоп такой: TASK [initial value] ********************************************************************************************************************************** ok: [localhost] => { "healthcheck_interval": "30s" } TASK [+10] ******************************************************************************************************************************************** ok: [localhost] => { "30 | int +10": "40" } TASK [wait 30s + 10s] ********************************************************************************************************************************* fatal: [localhost]: FAILED! => {"changed": false, "delta": null, "echo": true, "msg": "non-integer value given for prompt duration:\ninvalid literal for int() with base 10: '30 int +10'", "rc": 0, "start": null, "stderr": "", "stdout": "", "stop": null} Самое интересное, что если убрать +10 из то уже все ок😱
наверное потому что 30s это значение которое принимает модуль, а конкатенированая строка 30s + 10s ему не сильно нормально воспринимается
Андрей
Ещё раз | int попробуй после +10
пробовал - не работает
Андрей
наверное потому что 30s это значение которое принимает модуль, а конкатенированая строка 30s + 10s ему не сильно нормально воспринимается
я специально отдельно протестил (вторая таска) там должен быть число раз получилось добавить 10 и получить 40 + если не добавлять 10 а просто regex_replace убрать букву s то уже все подходит для pause 😧
Grek 🇺🇦
сделайте регистер в этой таске. если там будет 40 - то передавайте эту переменную, а не "30 | int +10": "40"
Андрей
Вот так работает - name: "+10" debug: var: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} | int + 10" register: added_value - name: show "{{ added_value }}" debug: var: added_value - name: wait {{ healthcheck_interval }} + 10s pause: seconds: "{{ added_value['30 | int + 10'] }}"
Андрей
но это же жесть жестяная
Lamobot
Привет Ребята, подскажите, не могу понять почему не работает есть переменная healthcheck_interval: 30s Для одного модуля она мне нужна в виде как есть (строка), а для другого просто как число. Вроде бы ничего страшного - с помощью regex_replace убираю s. Потом мне нужно добавить еще 10 к этому числу ( чтоб получилось 40 ). Но pause продолжает ее считать строкой: - name: initial value debug: var: healthcheck_interval - name: "+10" debug: var: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} | int +10" - name: wait {{ healthcheck_interval }} + 10s pause: seconds: "{{ healthcheck_interval | regex_replace('(^\\d*)s', '\\1') }} int +10"Выхлоп такой: TASK [initial value] ********************************************************************************************************************************** ok: [localhost] => { "healthcheck_interval": "30s" } TASK [+10] ******************************************************************************************************************************************** ok: [localhost] => { "30 | int +10": "40" } TASK [wait 30s + 10s] ********************************************************************************************************************************* fatal: [localhost]: FAILED! => {"changed": false, "delta": null, "echo": true, "msg": "non-integer value given for prompt duration:\ninvalid literal for int() with base 10: '30 int +10'", "rc": 0, "start": null, "stderr": "", "stdout": "", "stop": null} Самое интересное, что если убрать +10 из то уже все ок😱
А не проще использовать 30 в начальной переменной и потом добавлять к ней s когда нужно? Вместо огорода с регэкспами?
Андрей
я просто не ожидал что такое будет, думал сча я фильтрами туда-сюда и все будет ок
Lamobot
Здесь проскакивали ссылки на habr про "клубок слипшихся макарон", там в последней статье хорошо описаны косяки с типизацией переменных у ансибла.
Lamobot
я просто не ожидал что такое будет, думал сча я фильтрами туда-сюда и все будет ок
Вообще |int обычно спасает, просто нужно делать что-то вроде: ((ch_threads_max|int / 2)|round|int)
Alex
https://cs9.pikabu.ru/post_img/2016/09/15/7/147393909915812096.jpg
Андрей
Вообще |int обычно спасает, просто нужно делать что-то вроде: ((ch_threads_max|int / 2)|round|int)
это была моя первая идея ( в конце принудительно законвертить в интеджер)
Андрей
https://cs9.pikabu.ru/post_img/2016/09/15/7/147393909915812096.jpg
тип того)) казалось бы добавить десяточку))
Андрей
в общем все оказалось гораздо проще seconds: "{{ (healthcheck_interval | regex_replace('(^\\d*)s', '\\1') | int +10) | int }}"
Андрей
нужны были скобки, что-то упоролся под вечер
Андрей
всем спасибо!
Андрей
в общем все оказалось гораздо проще seconds: "{{ (healthcheck_interval | regex_replace('(^\\d*)s', '\\1') | int +10) | int }}"
даже можно без последнего | int : seconds: "{{ (healthcheck_interval | regex_replace('(^\\d*)s', '\\1')) | int +10 }}"
i4l
привет, парни, а вот как можно записать длинную комплексную переменную в несколько строк
i4l
что бы было читаемо
George
Пример давай
i4l
>- кажется всё-таки оставляет какие-то артефакты