我想做一个 ansible 任务,将一些文件复制到客户端。将复制哪个文件由客户端体系结构(x86 或 i386)决定。在没有代码重复的情况下执行此类操作的最佳方法是什么?
我的意思是,如果我可以只使用一项任务,比如:
name: copy file
copy: src={{ src }} dest={{ dest }}
Run Code Online (Sandbox Code Playgroud)
经过一些操纵。
您可以将系统特定设置存储在以体系结构命名的 vars 文件中。
在您的角色中,您将拥有一个x86.yml包含以下内容的文件:
...
copySrc: fileA
copyDest: /some/path/A
---
Run Code Online (Sandbox Code Playgroud)
和同样的i386.yml:
...
copySrc: fileB
copyDest: /some/path/B
---
Run Code Online (Sandbox Code Playgroud)
然后使用系统事实ansible_architecture包含正确的文件:
- include_vars: "{{ ansible_architecture }}.yml"
- name: Copy file
copy:
src={{ copySrc }}
dest={{ copyDest }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4502 次 |
| 最近记录: |