0

Task1 - create_user.yml: 通过 API 创建用户

Task2 - add_user_to_group.yml: 通过 API 将用户添加到组中:

Task3 - 通过调用/包括 Task1 和 Task2 创建用户并将其添加到组

任务3

- name: Creating the User and Adding to the Group ...
  include_tasks: create_user.yml
  loop: "{{ userslist | flatten(levels=1) }}"  
  vars:
    userslist:
      - "{{ ['users'] | product(users) }}"
  loop_control:
    loop_var: tasklists

在上面的 Task3 中,我将用户字典作为 Task1( create_user.yml) 的变量。

如何在上述 Task3 中also包含 Task2( )?add_user_to_group.yml

我们可以循环多个include_tasks任务1 和任务2,但我已经在任务3 中有一个循环。

我想保持 Task1 和 Task2 彼此独立,因此不包括 Task1 中的 Task2。

在我的情况下,如何在 Task3 中包含多个任务?

4

1 回答 1

0

由于我的评论可能至少需要一些伪代码才能理解,所以我们开始吧。

请注意,我只是在问题中重用了您现有的变量和循环,而不知道它们是否真正完成了这项工作。所以你可能还有一些零碎的东西需要修复。

  1. 如果您真的想让它们完全独立,请保持它们的原样create_user.ymladd_user_to_group.yml(如果您觉得您的设计太复杂,您可以稍后将这些任务移至下一个文件)
  2. 创建一个create_and_add_user_to_group.yml包含以下任务的文件:
    ---
    - name: Include create user tasks
      include_tasks: create_user.yml
    
    - name: include add user to group tasks
      include_tasks: add_user_to_group.yml
    
  3. 在您的主任务文件(剧本、角色等.....)中添加以下任务:
    - name: Create user and add to group
      include_tasks: create_and_add_user_to_group.yml
      loop: "{{ userslist | flatten(levels=1) }}"  
      vars:
        userslist:
          - "{{ ['users'] | product(users) }}"
      loop_control:
        loop_var: tasklists
    
于 2021-12-24T08:38:07.603 回答