在我的 ansible 劇本中,我有一個變數定義了我想創建的 OU DN。
my_ou: "OU=win10,OU=workstations,OU=mycompany"
domain_root: "DC=example,DC=com"
我想轉換my_ou為串列并創建每個 OU。問題是回圈不知道每個 OU 的路徑,因為它是回圈中先前元素的聚合。
如果我拆分my_ou“,”并反轉回圈,我可以按創建順序列印每個 OU。我可以使用regex_replace. 但是,我不知道如何構建路徑。
例如:
- name: create required OU's
win_domain_ou:
name: "{{ my_ou | regex_replace('^OU=') }}"
path: ???? should be all items to the right of the current {{ item }},{{ domain_root }}
state: present
loop: "{{ my_ou.split(',') | reverse | list }}"
所以,要清楚,路徑OU=win10應該是OU=workstations,OU=mycompany,DC=example,DC=com
OU=workstations路徑應該是OU=mycompany,DC=example,DC=com
等等。
謝謝!
uj5u.com熱心網友回復:
宣告元素串列
elements: "{{ my_ou.split(',') domain_root.split(',') }}"
給
elements:
- OU=win10
- OU=workstations
- OU=mycompany
- DC=example
- DC=com
并使用擴展回圈變數。例如,
- debug:
msg: "item: {{ item }} path: {{ elements[idx|int:]|join(',') }}"
loop: "{{ my_ou.split(',')|reverse }}"
loop_control:
extended: true
vars:
idx: "{{ my_ou.split(',')|length - ansible_loop.index0 }}"
給出(刪節)
msg: 'item: OU=mycompany path: DC=example,DC=com'
msg: 'item: OU=workstations path: OU=mycompany,DC=example,DC=com'
msg: 'item: OU=win10 path: OU=workstations,OU=mycompany,DC=example,DC=com'
用于測驗的完整劇本示例
- hosts: localhost
vars:
my_ou: "OU=win10,OU=workstations,OU=mycompany"
domain_root: "DC=example,DC=com"
elements: "{{ my_ou.split(',') domain_root.split(',') }}"
tasks:
- debug:
msg: "item: {{ item }} path: {{ elements[idx|int:]|join(',') }}"
loop: "{{ my_ou.split(',')|reverse }}"
loop_control:
extended: true
vars:
idx: "{{ my_ou.split(',')|length - ansible_loop.index0 }}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504648.html
上一篇:回圈塊DOM操作
