Redhat(6)-ansible-变量

发布于:2025-04-10 ⋅ 阅读:(88) ⋅ 点赞:(0)

变量
 


1.作用域
Global scope:命令行中设置。
Play scope:play中设置。
Host scope :inventory中定义、facts收集或任务中注册,在主机组和主机上设置。

1.全局变量
1.1cmd命令

#1.全局变量
#显示变量
echo %PATH

1.2.ansible变量
全局变量 var变量不加双括号,非var需要。

#全局变量的定义
#1.var变量 查看主机模块的某个参数     
#       主机名      模块名   引用不加双括号
ansible servera -m debug -a 'var=package'

#1.2.未定义
ansible servera -m debug -a 'var=package' -e package=httpd

#2.                          变量引用加双括号
ansible servera -m yum -a 'name={{ package }} state=present' -e package=httpd

2playbook中的变量
  双引号+两个大括号 "{{ }}"
2.1字典值:无横杠

---
- name: 
  hosts: servera
  remote_user: root
  vars:
    user: joe
    home: /home/joe
  tasks:
    - name: add user
      user:
        name:"{{ user }}"
        home:"{{ home }}"
    - name:
      debug:
        msg:
          username is {{ user }}
          home is {{ home }}

2.2列表值:有横杆

---
- name: 
  hosts: servera
  remote_user: root
  vars:
    user: joe
    home: /home/joe
  tasks:
    - name: add user
      user:
        name:"{{ user }}"
        home:"{{ home }}"
    - name:
      debug:
        msg:
          username is {{ user }}
          home is {{ home }}

2.3变量文件  列表

---
- name: 
  hosts: servera
  remote_user: root
  vars_files:
    - vars/user1.yml
  tasks:
    - name: add user
      user:
        name:"{{ user }}"
        home:"{{ home }}"
    - name:
      debug:
        msg:
          username is {{ user }}
          home is {{ home }}

cat vars/user1.yml

user1_name:user1
user1_home: /home/user

3.主机变量和组变量
  3.1主机变量
  3.2主机组变量

servera  usera
serverb userb
vim inventory

[servers]
servera user=usera home=/opt/usera
serverb user=userb home=/opt/userb

play中去掉即可

---
- name: 
  hosts: servera
  remote_user: root
#  vars_files:
#    - vars/user1.yml
  tasks:
    - name: add user
      user:
        name:"{{ user }}"
        home:"{{ home }}"
    - name:
      debug:
        msg:
          username is {{ user }}
          home is {{ home }}


3.2主机组变量:
主机组:servera 用的 usera
               serverb 用的 tom

[servers]
servera user=usera home=/opt/usera
serverb
[servers:vars]
user=tom
home=/opt/tom


 


网站公告

今日签到

点亮在社区的每一天
去签到