Fire
Григорий
проходит по всем переменным и засовывает их в wildfly через jboss cli
Григорий
Только для деплоя
Григорий
В него
Fire
Только для деплоя
> jboss cli
Не используете модуль https://docs.ansible.com/ansible/latest/modules/jboss_module.html ?
Григорий
Нет
Его у нас нет(
Григорий
И оно в переменные не умеет
Fire
Григорий
В смысле не завезли во внутреннюю сетку
Fire
Fire
Alex
Григорий
попроще вопрос тогда
есть 2 словаря:
test1:
a: b
и
test2:
d: e
можно ли как-то в with_items их объединить в один, чтобы вышло
test:
a: b
d: e
Отделение Bereke Bank
A
Grek 🇺🇦
register: some_output
а затем использовать переменную some_output, предварительно посмотрев что в ней все так как вым надо
Anton
понятно но в output попадет весь вывод команды а надо только ответ на Provide the ID of the agent to extract the key
Sergey
A
Alex
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
И реально будет вычеслено значение а при её использовании
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
Grey
Grey
Alexey
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
Вообще странно, что многие люди об этом функционале не знают. Супер удобная штука.
Aleksey
☭ Andrey
даже нужно
в смысле какой вид будет иметь)?
Aleksey
прям в плее так и пишите
hosts: SA:!A1:!B2
☭ Andrey
Ага, понял, спасибо, буду экспериментировать)
Grey
парни подскажите есть ли у кого готовый плейбук роли confluence ?
Grek 🇺🇦
и что должна делать эта готовая роль?
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 из то уже все ок😱
Отделение 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 ему не сильно нормально воспринимается
Андрей
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 про "клубок слипшихся макарон", там в последней статье хорошо описаны косяки с типизацией переменных у ансибла.
Alex
Alex
https://cs9.pikabu.ru/post_img/2016/09/15/7/147393909915812096.jpg
Андрей
Андрей
Андрей
в общем все оказалось гораздо проще
seconds: "{{ (healthcheck_interval | regex_replace('(^\\d*)s', '\\1') | int +10) | int }}"
Андрей
нужны были скобки, что-то упоролся под вечер
Андрей
всем спасибо!
Андрей
i4l
привет, парни, а вот как можно записать длинную комплексную переменную в несколько строк
i4l
что бы было читаемо
George
Пример давай
i4l
>- кажется всё-таки оставляет какие-то артефакты