Ansible根据事实设置变量值
我想做一个ansible任务,将一些文件复制到客户端。 将复制哪个文件取决于客户端体系结构(x86或i386)。 在没有代码重复的情况下,最好的方法是什么 我的意思是,如果我能用一个任务,比如:Ansible根据事实设置变量值,ansible,Ansible,我想做一个ansible任务,将一些文件复制到客户端。 将复制哪个文件取决于客户端体系结构(x86或i386)。 在没有代码重复的情况下,最好的方法是什么 我的意思是,如果我能用一个任务,比如: name: copy file copy: src={{ src }} dest={{ dest }} 通过一些操作。您可以将特定于系统的设置存储在以体系结构命名的vars文件中 在您的角色中,您将拥有一个包含以下内容的文件x86.yml: ... copySrc: fileA copyDest:
name: copy file
copy: src={{ src }} dest={{ dest }}
通过一些操作。您可以将特定于系统的设置存储在以体系结构命名的vars文件中 在您的角色中,您将拥有一个包含以下内容的文件
x86.yml
:
...
copySrc: fileA
copyDest: /some/path/A
---
对于i386.yml
,情况也一样:
...
copySrc: fileB
copyDest: /some/path/B
---
然后使用系统事实ansible\u架构
包含正确的文件:
- include_vars: "{{ ansible_architecture }}.yml"
- name: Copy file
copy:
src={{ copySrc }}
dest={{ copyDest }}
您可以使用:
vars:
src: "{{ 'file_amd64.tar.gz' if ansible_architecture == 'x86_64' else 'file_i386.tar.gz' }}"
tasks:
- name: copy file
copy: src={{ src }} dest={{ dest }}
我最终做了这样的事:
我在文件
目录中有两个目录:x86_64
和i386
。
每个包含my_文件
(包含相关内容)
我的角色包含以下任务:
name: copy file
copy: src={{ ansible_architecture }}/my_file dest={{ dest }}
谢谢你的回答帮助我想出了解决办法。看看我的答案。谢谢。你的回答帮助我想出了解决办法。看看我的答案。