playbook变量

本文介绍了Ansible Playbook中变量的命名规则、级别以及设定和使用方式,包括全局、play、主机级别的变量优先级。详细讨论了如何在playbook、文件、清单和目录中定义变量,并提到了`group_vars`和`host_vars`目录下的变量设定。此外,还讲解了数组定义变量的应用,如创建web vhost。同时,文章提到了事实变量和魔法变量,事实变量是Ansible自动检测的主机信息,而魔法变量`hostvars`则包含了Ansible软件的内部信息。最后,文章简要提及了j2模板在生成主机信息内容中的应用和YML加密。
摘要由CSDN通过智能技术生成

1、变量命名
只能包含数字,下划线,字母
只能用下划线或字母开头
2、变量级别
全局:从命令行或配置文件中设定的
play:在play和相关结构中设定的
主机:由清单,事实收集或注册的任务
变量优先级设定:play>主机>全局
3、变量设定和使用方式
1.在playbook中直接定义变量

---
- name: test var
  hosts: all
  vars:
    - NAME: westosuser
  tasks:
    - name: create user
      user:
        name: "{
   {NAME}}" NAME的值,变量的表示方式
        state: present
    

2.在文件中定义变量

vim user_list.yml
---
NAME:westosuser
vim westos.yml
---
- name: Create User
  hosts:172.25.254.100
  vars_files: ./user_list.yml
  tasks:
    - name:create user
      user:
        name:"{
   {NAME}}"
        state:present
ansible-playbook westos.yml        

3.在清单里定义变量

inventory
[test]
172.25.254.100
[test:vars]
NAME:westoslinux
使清单生效
vim test.yml
---
- name: test
  hosts:test
  tasks:
    - name:create user
      user:
        name:"{
   {NAME}}"
        state:present
ansible-playbook test.yml

4.目录设定变量
group_vars 清单变量,目录中的文件名称与主机清单名称一致
host_vars 主机变量,目录中的文件名称与主机名称一致

vim group_vars/test
---
NAME: westoslinux1

vim test.yml
---
- name: test
  hosts: test
  tasks:
    - name:create user
      user:
        name:"{
   {NAME}}"
        state:present
       
ansible-playbook test.yml
vim test.yml
---
- name: test
  hosts: test
  tasks:
    - name:create user
      debug:
      msg:"{
   {NAME}}"
vim test.yml
---
- name: test
  hosts: test
  tasks:
    - name:create user
      debug:
      var:NAME
mkdir host_vars
cd host_vars/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值