升级到 ansible 2.8 后,include_tasks 不适用于 become

Aqu*_*jet 7 ansible

我已经开始得到

错误!'become_user' 不是 TaskInclude 的有效属性

在将我的剧本与 ansible 2.8 一起使用时。

它适用于 ansible 2.7 及更早版本。

错误消息表明问题出在“become_user”行上的此文件中:

- name: Install API software
  become: true
  become_user: "{{ namespace }}"
  include_tasks: utils/install_service.yml
  vars:
    service_name: api
    nodejs_service: true
Run Code Online (Sandbox Code Playgroud)

我在 ansible 文档或变更日志中没有发现任何明显与此相关的内容。

Aqu*_*jet 11

在一些旧问题中找到了解决方案。

似乎将 'become' 与 '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 }}"
Run Code Online (Sandbox Code Playgroud)