Aleksey
знаешь да?
George
https://github.com/ansible/ansible/pull/32738
Нет, и надеюсь, что не буду. Чем больше типов они намазывают на типа-типизацию, тем ей больнее. Особенно в районе when.
Aleksey
обрати внимание что с этим уходит часть граблей с типизацией
Aleksey
безусловно не все
George
У меня будут оказываться рандомные типы вместо строк? А строки вместо ожидаемых типов из-за лишнего пробела?
Aleksey
ну и backward-compatible дефолт конечно подбешивает
George
Оно уже merged? Ща я куски из своего ansible bingo там проверю..
Aleksey
если ты стенды не разобрал, тебе сподручнее
Aleksey
оно в 2.7 стало
George
Окей, тогда я ничерта не понимаю. Объясни в двух словах что там происходит и как его увидеть?
Aleksey
джинджа перестаёт всё конвертить к строке
Aleksey
увидеть просто. ANSIBLE_JINJA2_NATIVE = True
Aleksey
или в конфиг или в окружение
Aleksey
оно появилось в какой то отнсительно недавней версии jinja. типа 2-3 года назад
George
О. Спасибо, ща проверю.
Aleksey
ну и смотри там тесты есть :)
Alex
https://github.com/ansible/ansible/issues/63180 чем то напоминает этот баг
George
Обычный: localhost : ok=4 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=4 ANSIBLE_JINJA2_NATIVE: localhost : ok=4 changed=0 unreachable=0 failed=0 skipped=3 rescued=0 ignored=4 Без изменений. Примерно половина из них - WTF'ы.
Aleksey
(на самом деле, конечно, нет)
George
- name: Bingo 1 debug: when: 'no' ignore_errors: true
Aleksey
давай свой бинго, статьей конечно :)
George
А всё не покажу. Слишком жирно и вкусно для чатика.
Aleksey
ггг
George
Это ты думаешь.
George
Потому оно и "bingo"
Aleksey
эта канитель исправлеят именно приведение при шаблонизации
George
Оно одинаково как с ANSIBLE_JINJA2_NATIVE так и без.
Aleksey
"no" конвертится строку, строка проверяется на непустую да ?
George
Нет. Это _ОЖИДАЕМОЕ_ поведение. А в ответе - bingo!
George
То, чего ты не ожидал.
Lamobot
- name: Bingo 1 debug: when: 'no' ignore_errors: true
А в чем бинго-то? Какое-то кривое поведение?
George
Возьми да запусти. WTF обеспечен.
Aleksey
отформатирует винт.
George
* Автор не несёт ответственности за сохранность /home у запустившего.
Aleksey
слышлали мы этот ваш "возьми да запусти"
Lamobot
The conditional check 'no' failed. The error was: error while evaluating conditional (no): 'no' is undefined ?
George
Если ты думаешь, что понял bingo1, вот тебе bingo2: - name: Bingo 2 debug: when: foo ignore_errors: true vars: foo: 'no'
George
В этом и суть бинго - ты всегда проигрываешь, какую бы систему игры в бинго не придумал.
Aleksey
мне зашла такая вот структура. ├── filters ├── group_vars ├── playbooks │ └── group_vars └── roles
Aleksey
playbooks -> group_vars побеждают
Aleksey
удобно там хранить environemnt (prod|dev|rc)
Aleksey
весь цикл огонь. спасибо.
George
И ещё из цикла no-bingo: - name: Bingo 4 debug: when: foo vars: foo: '{{ [no] }}'
George
Повторяю, 5 здоровых лбов, пищущих ансибл 8/5 за зарплату каждый раз не могли угадать.
Aleksey
У проекта впечатляющая репа https://github.com/stonicio/stonic
@amarao вот эти ребята вообще должны были решить все проблемы ансибла
George
Это такая дзен-шутка? Хорошая система управления конфигурациями - не написанная система управления конфигурациями?
Aleksey
:)
Aleksey
местный фольклёр
Bogdan (SirEdvin)
https://github.com/ansible/ansible/blob/stable-2.9/lib/ansible/plugins/inventory/netbox.py - в ансибле давно не создавали issue с "Вы там чего, ребят"?)
Bogdan (SirEdvin)
Количество except-pass просто запредельное
George
Я не могу с бинго остановиться, оно затягивает. - name: Bingo 7 debug: when: foo == [True] vars: foo: '{{ [yes] }}'
Vladimir
А как refreshonly прикрутить?
Vladimir
Он, вроде, каждый раз этот таск вызывает
Vladimir
Даже если не менялся файл
Aleksey
значит меняется
Vladimir
ммм
Vladimir
Спасиб
George
Пытаюсь уговорить себя, что Ансибл и здравый смысл совместимы, но пока что у меня всё обсыпается. - name: Bingo 10 debug: when: foo vars: foo: '{{ "n" + "o" }}' # Enjoy your ADIS... Ansible.
Dmitriy
Всем доброго дня. Есть задача остановить все systemd сервисы на хосте, кроме указанных. Не могу найти как это сделать. Из идей (что нагуглил) получить все сервисы tasks: - name: get service facts service_facts: далее как то так when: ansible_facts.services["oracle-tfa.service"] is not defined, но тут как то надо прописать условие, если сервис, например ssh, network (итд), то их не оставнавливать. Но что то не могу понять как это сделать правильно.
Dmitriy
сделать список сервисов, а потом вычесть лишнее (difference).
ага, получается изначально указать list тех сервисов что мне нужно исключить, потом собрать все и через difference отфильтровать. Ок, спасибо, попробую
Alex
@amarao Есть какие-нибудь идеи насчет бага с делегированием и интерпритатором?
George
@amarao Есть какие-нибудь идеи насчет бага с делегированием и интерпритатором?
Я ничего не могу сказать, потому что я не вижу где он выставляется. host_vars, group_vars? Они разные на разных хостах? Одинаковые? Что в ansible.cfg?
George
точно? Что дебаг показывает для обоих хостов?