ansible角色中vars文件夹中main.yml文件的用途是什么?
我的任务是将文件夹中的文件、模板文件夹中的模板复制到远程主机`` 模板文件没有任何内容,只有文本 templates/templateexample.txt.j2 =>这是要传输的示例模板 vars/main.ymlansible角色中vars文件夹中main.yml文件的用途是什么?,ansible,Ansible,我的任务是将文件夹中的文件、模板文件夹中的模板复制到远程主机`` 模板文件没有任何内容,只有文本 templates/templateexample.txt.j2 =>这是要传输的示例模板 vars/main.yml --- project_files: files: - src: "examplefile1.txt" dst: "~/examplefile1.txt" mode: '0755' force:
---
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
问:ansible角色中vars文件夹中main.yml文件的用途是什么
答:主要原因是自定义角色的默认变量。
role/vars/main.yml中定义的变量覆盖了role defaults、inventory、group_vars、host_vars中定义的所有变量,以及该角色包含在该剧中之前在该剧中定义的所有变量。有关详细信息,请参阅
例如,让我们创建一个剧本
shell>cat playbook.yml
-主机:本地主机
变量:
测试变量:在剧本变量中定义的测试变量
角色:
-角色1
让我们用空roles/role1/vars/main.yml和roles/role1/tasks/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
shell>cat角色/role1/tasks/main.yml
-调试:
var:test_var
shell>cat角色/role1/vars/main.yml
---
#角色1的vars文件
剧本将显示剧本变量中定义的变量
shell>ansible剧本测试-14.yml
...
测试变量:在剧本变量中定义的测试变量
现在,在角色的role1/vars/main.yml中定义变量test_var
---
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
shell>cat角色/role1/vars/main.yml
---
#角色1的vars文件
test_var:在角色变量中定义的test_var
角色变量中定义的变量覆盖了剧本变量中定义的变量
shell>ansible playbook playbook.yml
...
test_var:在角色变量中定义的test_var
注:
- 不要将角色的vars/main.yml放入Ansible Galaxy git中。这将保留本地自定义项,使其不受更新和升级的影响
- 名称:复制文件 复制:src=examplefile1.txt dest=/home/user/example.txt
- 名称:示例模板-x 模板: src:templateexample.txt.j2 dest:/home/user/newexample.txt 带_项:var_x
- 主机:本地主机
连接:本地
变成:是的
方法:sudo
角色:
- 壁画角色/样本角色
- 包括:nginx.yml
- 包括:copy-static.yml
- 包括:copy-template.yml
- “变量x” 变量:
- “变量y”