首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ansible中运行循环以遍历脚本

在ansible中运行循环以遍历脚本
EN

Stack Overflow用户
提问于 2021-05-31 07:24:16
回答 1查看 42关注 0票数 0

我有一个现有的ansible剧本,通过ansible塔运行。

包装器攻略

代码语言:javascript
运行
复制
#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是传递的脚本文件参数。

代码语言:javascript
运行
复制
---
  executeAction: 'runScript'
  script: 'myscript.ps1'

#在ansible to中,目标是能够运行多个脚本。基于我的研究,这是我提出的,这是错误的,我在这里寻找一些正确的方法的指导。

代码语言:javascript
运行
复制
---
executeAction: 'runScript'
loop:
  - 'script1.ps1'
  - 'script2.ps1'
loop_control:
loop_var: ExecuteThisFile
script: '{{ ExecuteThisFile }}'

在这个例子中,我从塔里得到一个错误,没有定义变量ExecuteThisFile。

然而,这是可行的。

代码语言:javascript
运行
复制
---
executeAction: 'runScript'
script: 'script1.ps1'

限制是,它只运行一个脚本。

阅读了此处的文档后,https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html

看起来似乎需要一个内部和外部循环。

对我来说,它看起来像this.For易读性,我把它们放在一行。当我尝试这个逻辑时,它返回了一个语法错误。

代码语言:javascript
运行
复制
executeAction: runScript' script 'script1.ps1'
executeAction: runScript' script 'script2.ps1'
executeAction: runScript' script 'script3.ps1'
EN

回答 1

Stack Overflow用户

发布于 2021-06-04 22:39:39

我最终要做的是创建多个角色,每个角色都会引用一个或两个脚本。这就消除了循环的需要。

然后,在ansible the中,我创建了一个调用角色的包装器剧本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67766515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档