George
- name: Use a single pattern that contains a comma formatted as a list
find:
paths: /var/log
file_type: file
use_regex: yes
patterns: ['^_[0-9]{2,4}_.*.log$']
register: war_file_non_default
- set_fact:
war_file: "{{ war_file | default(war_file_non_default) }}"
George
что-то такое
Fidelina
окей, спасибо!
Albert
Может тут кто знает:
Albert
I'm running a playbook with multiple plays, with free strategy. Is there a way to not continue to other plays if the previous play had failed hosts? any_errors_fatal doesn't work with free strategy
George
ихь бин не понимайт
George
что в твоем понимании есть разные плеи
Sergey
Albert
Timur
Timur
https://docs.ansible.com/ansible/2.7/modules/stat_module.html#stat-module
Sergey
Это почему?
Потому что она потому и free, что все хосты бегут, кто во что горазд.
George
ну я вижу себе так
George
что можно тупо сделать вызов ansible-playbook столько раз, сколько нужно
George
с проверкой кода возврата
George
Albert
Мне не надо чтоб при первой ошибке он выпал. Мне надо чтоб на второй плей не перешел если в первом ошибки были.
Albert
вот
Мне не надо бежать опять. Мне надо чтоб второй плей не сработал
George
вообще ? или для конкретного хоста?
Albert
Вообще
George
так раздели плеи по плейбукам и см. выше.
Albert
Тогда другой функционал нельзя использовать. У меня параметры между плеями переходять
Nikolay
Как в джиндже в selectattr можно использовать переменную, передаваемую при запуске?
Nikolay
Типа
selectattr('tags.Name', 'equalto', '{{ var }}')
Nikolay
Nikolay
map('replace', 'a', some_var), you don't use Jinja expression syntax when you're already in an expression, you use the variable directly.
Nikolay
а selectattr может в not equal to или хотя бы or? 🤔
Timur
[IPT] Dmitry
Привет!
Как можно в ansible парсить переменную, только когда она состоит из двух строк?
Вот думал что-то типа этого, но потом понял, что так не выйдет:
- hosts: all
tasks:
- name: set var
set_fact:
variable: |
qwe
asd
zxc
- name: print var
debug:
msg: '{{ variable }}'
- name: parse var
debug:
msg: '{{ variable | regex_search("(^.+\n){2}", multiline=True) }}'
TASK [set var] ****************************************************************************
ok: [localhost]
TASK [print var] ****************************************************************************
ok: [localhost] =>
msg: |-
qwe
asd
zxc
TASK [parse var] ****************************************************************************
ok: [localhost] =>
msg: |-
qwe
asd
Aleksandr
[IPT] Dmitry
variable.split("\n")|length > 1
- hosts: all
tasks:
- name: set var
set_fact:
variable: |
qwe
asd
- name: print var
debug:
msg: '{{ variable }}'
- name: parse var
debug:
msg: '{{ variable.split("\n")|length > 1 }}'
TASK [print var] ****************************************************************************
ok: [localhost] =>
msg: |-
qwe
asd
TASK [parse var] ****************************************************************************
ok: [localhost] =>
msg: false
[IPT] Dmitry
ЧЯДНТ?
Aleksandr
покажи что в переменной variable.split("\n")
[IPT] Dmitry
msg:
- |-
qwe
asd
Aleksandr
прошу прощения, не туда смотрел, нужно использовать splitlines() вместо split("\n")
Артём
А что в ансибле есть для ip link create dummy0 type dummy? Что-то не осилил нагуглить.
George
Артём
Интерфейс поднимать. Конфигурационный файл есть, а вот ifup падает с «Device dummy0 does not seem to be present»
George
Артём
Абсолютно.
В ручном режиме я создаю его командой.
Вот интересуюсь, есть ли модуль соответствующий.
Sergey
George
https://docs.ansible.com/ansible/latest/modules/net_interface_module.html ?
George
Не?
Артём
Sergey
George
George
Sergey
Sergey
https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/net_tools/nmcli.py#L67
Sergey
Возможно, тебе generic подойдёт
Sergey
Опять же, код общественный — всегда можно запилить issue и PR.
Sergey
Либо башсибл в руки и пятно в карму.
George
https://jamielinux.com/docs/libvirt-networking-handbook/appendix/dummy-interface-on-rhel.html
George
Для референса
Артём
Это да, просто таска вроде такая очевидная, что я прям удивлён.
George
Вообще нафига дамми я не пойму
George
Это бридж пустой ? Зачем он нужен ?
George
На лупбек айпишник не навесить 😳?
Артём
И анонсировать его потом?
George
Я задачи не понимаю
Артём
Поднять адрес, анонсировать по бфд/рипу.
Артём
Вывесить на него приложение.
George
Дамми зачем ?
George
Субинтерфейс ?
George
Типа eth0.1
Артём
Да, субинтерфейс.
George
Ну, eth0.1 создай и. Все
Артём
Наверное, я не прав. Не суб. Он не имеет никакого отношения к eth0. eth0 - физический интерфейс. Если бы у меня на нём был vlan-id 1, я бы создал к нему eth0.1
dummy не зависит от физики под ним.
George
eth0.1 - это необязательно вилан
George
Это может просто быть второй айпи
George
Артём
L3 интерфейс.
Артём
Адрес с него анонсируется по одному из протоколов маршрутизации поверх любой имеющейся физики.
George
Ну, это бридж получается
Артём
Пяток лупбеков, по штуке на адрес?
George
George
более того. Концептуально тебе даже адреса не нужны