一、playbook变量
变量名:字母数字和下划线

二、变量来源

1.ansible 主机 -m setup|less所有主机都可以调用

#过滤-a 'filter=*address*'

playbook变量(五)

1.1例子创建一个hostname 的log文件

ansible date -m setup -a 'filter=ansible_fqdn*'
[root@linux-node1 ansible]# cat var.yaml 
---
- hosts: date
  remote_user: root

  tasks:
    - name: create log file
      file: name=/data/{{ ansible_fqdn }}.log state=touch mode=600 owner=zjy

playbook变量(五)

  2. 在/etc/ansible/hosts

 2.1 在host配置文件定义http_port变量

playbook变量(五)

[root@linux-node1 ansible]# cat hostname.yaml 
---
- hosts: date
  remote_user: root

  tasks:
    - name: set hostname
      hostname: name=www.{{http_port}}.123

playbook变量(五)

2.2为组设置固定格式

[root@linux-node1 ansible]# cat hostname1.yaml 
---
- hosts: date
  remote_user: root

  tasks:
    - name: set hostname
      hostname: name={{nodename}}.{{http_port}}.{{dominname}}

playbook变量(五)

playbook变量(五)

3、通过命令行指定变量、优先级最高

[root@linux-node1 ansible]# cat app.yaml 
---
- hosts: date
  remote_user: root

  tasks:
    - name: install package
      yum: name={{ pkname }}
    - name: start service
      service: name={{ pkname }} state=started enabled=yes

ansible-playbook -e 'pkname=vsftpd'  app.yaml

playbook变量(五)

 playbook变量(五)

 3.1定义多个变量

[root@linux-node1 ansible]# cat app1.yaml 
---
- hosts: date
  remote_user: root

  tasks:
    - name: install package
      yum: name={{ pkname1 }}
    - name: install package
      yum: name={{ pkname2 }}

playbook变量(五)

4、 在playbook中定义
vars:
- var1: value1
- var2: value2

[root@linux-node1 ansible]# cat app2.yaml
---
- hosts: date
  remote_user: root
  vars:
    - pkname1: httpd
    - pkname2: vsftpd

  tasks:
    - name: install package
      yum: name={{ pkname1 }}
    - name: install package
      yum: name={{ pkname2 }}

playbook变量(五)

playbook变量(五)

 5、定义变量文件

[root@linux-node1 ansible]# cat vars.yaml 
var1: httpd
var2: nginx
#playbook
[root@linux-node1 ansible]# cat testvar.yaml 
---
- hosts: date
  remote_user: root
  vars_files:
    - vars.yaml

  tasks:
    - name: install package
      yum: name={{ var1 }}
    - name: create file
      file: name=/data/{{ var2 }}.log state=touch

ansible-playbook  testvar.yaml

playbook变量(五)

相关文章:

  • 2021-07-14
  • 2021-06-02
  • 2021-05-25
  • 2022-01-09
  • 2022-02-24
  • 2021-09-09
  • 2021-10-03
  • 2021-07-25
猜你喜欢
  • 2021-07-29
  • 2022-01-22
  • 2021-08-17
  • 2021-12-20
  • 2021-09-09
  • 2022-12-23
  • 2021-06-26
相关资源
相似解决方案