我有一个现有的ansible剧本,通过ansible塔运行。
包装器攻略
#wrapper.yml
---
- name: Wrapper PowerShell PB
hosts: [x,y,z]
tasks:
- include_role:
name: "{{ executeAction }}"
register: "{{ executeAction }}_log"
- debug: msg="{{ executeAction }}_log"
还定义了另一个可分析的角色,称为runScript。runScript也是一个包装器攻略,它复制作为参数传递的脚本文件,将其复制到ansible工作区,然后称为powershell.exe -file 'theScriptFile.ps1‘。
它使用以下语法运行单个脚本,其中theScriptFile.ps1是传递的脚本文件参数。
---
executeAction: 'runScript'
script: 'myscript.ps1'
#在ansible to中,目标是能够运行多个脚本。基于我的研究,这是我提出的,这是错误的,我在这里寻找一些正确的方法的指导。
---
executeAction: 'runScript'
loop:
- 'script1.ps1'
- 'script2.ps1'
loop_control:
loop_var: ExecuteThisFile
script: '{{ ExecuteThisFile }}'
在这个例子中,我从塔里得到一个错误,没有定义变量ExecuteThisFile。
然而,这是可行的。
---
executeAction: 'runScript'
script: 'script1.ps1'
限制是,它只运行一个脚本。
阅读了此处的文档后,https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html
看起来似乎需要一个内部和外部循环。
对我来说,它看起来像this.For易读性,我把它们放在一行。当我尝试这个逻辑时,它返回了一个语法错误。
executeAction: runScript' script 'script1.ps1'
executeAction: runScript' script 'script2.ps1'
executeAction: runScript' script 'script3.ps1'
发布于 2021-06-04 22:39:39
我最终要做的是创建多个角色,每个角色都会引用一个或两个脚本。这就消除了循环的需要。
然后,在ansible the中,我创建了一个调用角色的包装器剧本。
https://stackoverflow.com/questions/67766515
复制相似问题