首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >main.yml文件在vars文件夹中的作用是什么?

问main.yml文件在vars文件夹中的作用是什么?
EN

Stack Overflow用户
提问于 2020-07-12 05:59:27
回答 2查看 3.2K关注 0票数 5

我的任务是在文件文件夹中复制文件,在模板文件夹中复制模板到远程主机。

模板文件没有任何文本。

=>This是要传输的示例模板。

vars/main.yml

代码语言:javascript
复制
---
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-14 10:23:54

#文件:拷贝-static.yml

  • 名称:复制文件副本: src=examplefile1.txt dest=/home/user/example.txt

#文件:复制模板.file

  • 名称:样例模板-x模板: src: templateexample.txt.j2 dest: /home/user/newexample.txt with_items: var_x

#文件: ngnix.yml

代码语言:javascript
复制
- name: install nginx
 apt: name=nginx update_cache=yes state=latest
- name: displaying message
  debug: msg="yayy!! nginx installed"

#文件: mainplaybook.yml

  • 主机:本地主机连接:本地变得:是的,become_method: sudo角色:
    • 壁画角色/样本角色

#file:任务/main.yml

  • 包括: nginx.yml
  • 包括:复制-静态.copy
  • 包括:复制模板。

#file:主机本地主机

#文件: vars/main.yml

project_files:文件:- src:"examplefile1.txt“dst:"~/examplefile1.txt”模式:'0755‘强制:假模板:- src:"templateexample.txt.j2“dst:”~/templatexample.txt“模式:'0755’强制: false var_x:

  • ‘'variable x’var_y:
  • “可变y”
票数 1
EN

Stack Overflow用户

发布于 2020-07-12 06:48:15

问: main.yml文件在vars文件夹中的作用是什么?

答:的主要原因是自定义角色的默认变量.

角色/vars/main.yml中定义的变量覆盖角色默认值、库存、group_vars、host_vars中定义的所有变量,以及在角色被包含在剧本中之前定义的所有变量。详情请参见变量优先级:我应该把变量放在哪里?。

例如,让我们创建一个剧本

代码语言:javascript
复制
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中的简单调试任务。

代码语言:javascript
复制
shell> cat roles/role1/tasks/main.yml
- debug:
    var: test_var

shell> cat roles/role1/vars/main.yml 
---
# vars file for role1

剧本将显示在剧本的vars中定义的变量。

代码语言:javascript
复制
shell> ansible-playbook test-14.yml 
  ...
  test_var: test_var defined in the playbook vars

现在,在角色的角色1/vars/main.yml中定义变量test_var

代码语言:javascript
复制
shell> cat roles/role1/vars/main.yml 
---
# vars file for role1
test_var: test_var defined in the role vars

在角色的vars中定义的变量覆盖,该变量在剧本的vars中定义。

代码语言:javascript
复制
shell> ansible-playbook playbook.yml 
  ...
  test_var: test_var defined in the role vars

备注:

  • 不要将角色的vars/main.yml放入Ansible Galaxy git中。这将在更新和升级中保留本地自定义。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62857618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档