簡體   English   中英

Ansible 包括帶循環的多個任務

[英]Ansible include multiple tasks with loop

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 )?

我們可以為 Task1 和 Task2 循環多個include_tasks ,但我已經在 Task3 中有一個循環。

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

在我的情況下,如何在 Task3 中包含多個任務?

由於我的評論可能需要至少一些偽代碼才能理解,所以我們在這里 go。

請注意,我只是在問題中重用了您現有的變量和循環,而不知道它們是否真正完成了這項工作。 所以你可能還有一些零碎的東西需要修復。

  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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM