我的任务是在文件文件夹中复制文件,在模板文件夹中复制模板到远程主机。
模板文件没有任何文本。
=>This是要传输的示例模板。
vars/main.yml
---
project_files:
files:
- src: "examplefile1.txt"
dst: "~/examplefile1.txt"
mode: '0755'
force: false
templates:
- src: "templateexample.txt.j2"
dst: "~/templateexample.txt"
mode: '0755'
force: false发布于 2020-07-14 10:23:54
#文件:拷贝-static.yml
#文件:复制模板.file
#文件: ngnix.yml
- name: install nginx
apt: name=nginx update_cache=yes state=latest
- name: displaying message
debug: msg="yayy!! nginx installed"#文件: mainplaybook.yml
#file:任务/main.yml
#file:主机本地主机
#文件: vars/main.yml
project_files:文件:- src:"examplefile1.txt“dst:"~/examplefile1.txt”模式:'0755‘强制:假模板:- src:"templateexample.txt.j2“dst:”~/templatexample.txt“模式:'0755’强制: false var_x:
发布于 2020-07-12 06:48:15
问: main.yml文件在vars文件夹中的作用是什么?
答:的主要原因是自定义角色的默认变量.
角色/vars/main.yml中定义的变量覆盖角色默认值、库存、group_vars、host_vars中定义的所有变量,以及在角色被包含在剧本中之前定义的所有变量。详情请参见变量优先级:我应该把变量放在哪里?。
例如,让我们创建一个剧本
shell> cat playbook.yml
- hosts: localhost
vars:
test_var: test_var defined in the playbook vars
roles:
- role1让我们创建一个空角色/ role 1/vars/main.yml和角色/role 1/任务/main.yml中的简单调试任务。
shell> cat roles/role1/tasks/main.yml
- debug:
var: test_var
shell> cat roles/role1/vars/main.yml
---
# vars file for role1剧本将显示在剧本的vars中定义的变量。
shell> ansible-playbook test-14.yml
...
test_var: test_var defined in the playbook vars现在,在角色的角色1/vars/main.yml中定义变量test_var
shell> cat roles/role1/vars/main.yml
---
# vars file for role1
test_var: test_var defined in the role vars在角色的vars中定义的变量覆盖,该变量在剧本的vars中定义。
shell> ansible-playbook playbook.yml
...
test_var: test_var defined in the role vars备注:
https://stackoverflow.com/questions/62857618
复制相似问题