"{{ item.port }}"
при прокатке роли в нее (в роль) прилетает AnsibleUnsafeText. А нужен int. Пытался через "{{ item.port | int }}" и так же, где в самой роли передается эта варса тоже через | int - не работает
Если явно пишу variable_one: 80, то все нормально.
Что я делаю не так?
ansible [core 2.12.6]
python version = 3.9.13
Погуглил. Такое ощущение что ошибка при дальнейшем использовании ибо |int это не преобразование а просто проверка. То есть по итогу получается именно строка. Вроде так. Странно конечно. Например тут http://www.freekb.net/Article?id=2570 И тут вроде что то написано https://github.com/ansible/ansible/issues/30366
спасибо, посмотрю
Погодите, но вы же рекурсию сделали, у вас же item цикла находиться в теле цикла или я что-то не так понял?
в случае рекурсии ансибл вроде это кетчит. а так у меня импорт роли и к ней варсы. playbook.yml - name: Include superrole include_role: name: superrole vars: target: "{{ item.target }}" port: "{{ item.port }}" with_items: "{{ super_role_var }}" vars.yml super_role_var: - { target: target_1, port: 80 } - { target: target_2, port: 443 }
И да, инклуд ролей плохая практика...
а как по бестпрактисовей?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#storing-and-finding-roles И ниже
Обсуждают сегодня