【ansible】变量

变量说明:

###变量优先级ansible -e var=value > playbook中定义的变量 > 主机组中定义的变量 > 公共组中变量
1.ansible setup facts远程主机的所有变量可直接调用
2.在/etc/ansible/hosts中定义
    普通变量:主机组(/etc/hosts)中主机单独定义,优先级高于公共变量,如下所示port为变量直接赋值,
             [a]
                192.168.168.1 port=2000
                192.168.168.2 port=3000
    公共(组)变量:针对主机组中所有主机定义统一变量,设置如下
             [a:vars]
                nodename_common=helo
                domainname=oleh
         ==========分隔符 hn.yml=============
         ansible-playbook hn.yml
             ---
             - hosts: a
               remoteuser: root
               tasks:
                  - name: set hostname
                    hostname: {{nodename}}.{{port}}.{{domainname}}   
         =============================
3.通过命令行指定变量,优先级最高
    ansible-playbook -e varname=value
4.在playbook中定义
    vars:
      - var1: value1
      - var2: value2
5.在role中定义

 

法1:声明变量,当执行ansible-playbook命令时,给变量赋值

下面playbook中{{ package }}为变量,该剧本作用是安装包并启动,调用方式如下
ansible-playbook -e 'package=vsftpd' install.yml
================分隔符 install.yml================
---
- hosts: a
  remote_user: root
  tasks:
   - name: install package
     yum: name={{ package }}
   - name: service
     service:  name={{ package }} enabled=yes state=started

法2:在playbook中声明并赋值变量

直接在yml脚本中用vars声明并赋值变量
ansible-playbook ins.yml
=============分隔符 ins.yml===========
---
- hosts: a
  remote_user: root
  vars:
   - package1: httpd
   - package2: vsftpd
  tasks:
   - name: install package
     yum: name={{ package }}
   - name: service
     service:  name={{ package }} enabled=yes state=started

法3:创建一个包含变量的文件vars.yml,然后在playbook中调用

===========变量文件 /root/vars.yml=============
vars1: httpd
vars2: net-tools

===========playbook ins.yml=============
---
- hosts: a
  remote_user: root
  vars_files: 
    - vars.yml
  tasks:
    - name: yum1
      yum: name={{vars1}}
    - name: yum2
      yum: name={{vars2}}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值