我正在学习Ansible,并且遇到了任何地方都找不到很好的参考资料的东西-
我的目标计算机上有一个.ps1,我想通过Ansible运行它,同时还要向它传递一个变量。我的剧本非常简单:
---
- name: run stuff
hosts: all
gather_facts: no
vars:
force_all_hosts: false
tasks:
- name: run mounter script
win_shell: C:\folder\file.ps1 -password (ConvertTo-SecureString "{{vault_pw}}" -AsPlainText -Force)
当我在Windows机器本地手动运行它们时,.ps1的内容起作用,因此我知道实际的命令起作用。当我运行剧本时,它也能正常运行-Powershell脚本成功运行并进行了更改-但实际任务从未完成,因此剧本无法完成。
我在win_shell行的末尾添加了“ 是否有一种方法可以强制返回码,并过滤返回值是否等于2。或者更好的是,除了使用async / poll之外,还有其他方法可以确保作业结束,因为这会导致播放报告失败。
答案 0 :(得分:0)
您可以在ansible中尝试使用async选项吗? https://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html