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 }}"

Для справки см. Комментарий к проблеме в восходящем направлении.

Другие вопросы по тегам