NoneInclude _tasks не работает с стать после обновления до ansible 2.8
Я начал получать
ОШИБКА! "становиться_пользователем" не является допустимым атрибутом для TaskInclude
используя мои playbooks с ansible 2.8.
Работает нормально с ansible 2.7 и более ранними версиями.
Сообщение об ошибке говорит о том, что проблема в этом файле в строке "становиться_пользователем":
- name: Install API software
become: true
become_user: "{{ namespace }}"
include_tasks: utils/install_service.yml
vars:
service_name: api
nodejs_service: true
Я не нашел ничего, очевидно связанного с этим, в отчетах или журналах изменений.
1 ответ
Нашел решение в какой-то старой проблеме.
Похоже, что использование команды "стать" с "include_tasks" было недокументированной функцией, которая была случайно удалена.
Это можно решить, упаковав include_tasks в блок:
- block:
- name: Install API software
include_tasks: utils/install_service.yml
vars:
service_name: api
nodejs_service: true
become: true
become_user: "{{ namespace }}"
Вы должны иметь возможность просто добавить их в список переменных, который вы передаете (с ansible_
префикс). Итак, это будет:
- name: Install API software
include_tasks: utils/install_service.yml
vars:
service_name: api
nodejs_service: true
ansible_become: true
ansible_become_user: "{{ namespace }}"
Для справки см. Комментарий к проблеме в восходящем направлении.