ansible Playbook 中变量的使用

变量名

仅能由字母、数字和下划线组成,且只能以字母开头

变量来源

1. ansible setup facts 远程主机的所有变量都可直接调用

ansible localhost -m setup

2. 在/etc/ansible/hosts中定义

普通变量:主机组中主机单独定义,有限级高于公共变量
公共(组)变量:针对主机组中所有足迹定义统一变量
# tail  hosts
[websrvs]
10.10.2.230
10.10.2.130

[websrvs:vars]
nodename=222
domainname=lx.tech


# cat yml/hostname.yml
---
- hosts: websrvs
  remote_user: root

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

ansible-playbook yml/hostname.yml

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

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

app.yml :内容如下

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

4. 在playbook中定义

---
- hosts: appservs
  remote_user: root
  vars:
    - var1: httpd
    - var2: nginx
  tasks:
    - name: install package
      yum: name={{ item }}
      with_items:
        - {{ var1 }}
        - {{ var2 }}


posted @ 2021-09-06 15:27  Star-Hitian  阅读(143)  评论(0)    收藏  举报