我有以下用例.用户运行ansible play book并提供用户(-e user =).在剧本中,正如预期的那样,我确实成了并成为了_user.但是,我只想在提供的用户名与他自己的用户名(静态已知)不同时才这样做.
我试图有条件地包含一个文件,我将在那里成为,但到目前为止似乎没有工作.
这是我的一些代码:
第一个/剧本文件:
---
- name: example
hosts: examplehost
tasks:
- include: "usersetup.yml"
when: "{{ user }} != {{ user_id }}"
Run Code Online (Sandbox Code Playgroud)
第二个文件(usersetup.yml)
我不清楚这个文件的格式,因为我对这个过程比较新,但我现在有:
- become: yes
- become_user: "{{ user }}"
Run Code Online (Sandbox Code Playgroud)
这当然不起作用,所以欢迎任何想法/建议.如果需要,我会非常乐意提供更多说明.谢谢.
我正在为可能遇到相同情况的其他人发布我自己的解决方案.
基本上,这里是剧本中有条件地成为另一个用户的语法.
become: "{{ 'no' if user == ansible_user else 'yes' }}"
become_user: "{{ edge_user }}"
Run Code Online (Sandbox Code Playgroud)
条件可以是你想要的任何东西.希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |