ansible-playbook变量使用

学习目标:

能够学会在写playbook时定义和使用变量

学习内容:

playbook中变量的使用

  • 变量名:仅能由字母、数字和下划线组成,且只能以字母开头
  • 变量来源:
    在这里插入图片描述
    在这里插入图片描述
    通过命令行指定变量的样例
[root@zabbix_server ansible]# cat install.yml 
---
- hosts: LYP
  remote_user: root

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

[root@zabbix_server ansible]# ansible-playbook -e 'pkname1=httpd pkname2=vsftpd' install.yml [root@zabbix_server ansible]# ansible-playbook -e 'pkname1=httpd' -e 'pkname2=vsftpd' install.yml
执行的效果一样,如下:
PLAY [LYP] **************************************************************************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************************************************************
ok: [172.28.102.130]
ok: [172.28.102.131]

TASK [install package] **************************************************************************************************************************************************************************************
ok: [172.28.102.130]
ok: [172.28.102.131]

TASK [install package] **************************************************************************************************************************************************************************************
ok: [172.28.102.130]
ok: [172.28.102.131]

PLAY RECAP **************************************************************************************************************************************************************************************************
172.28.102.130             : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
172.28.102.131             : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

**在playbook中定义样例**
[root@zabbix_server ansible]# cat install2.yml 
---
- hosts: LYP
  remote_user: root
  vars:
   - pkname1: httpd
   - pkname2: vsftpd
  tasks:
   - name: install package
     yum: name={{ pkname1 }}
   - name: install package
     yum: name={{ pkname2 }}

普通变量样例

[root@zabbix_server ansible]# cat hostname.yaml 
---
- hosts: LYP
  remote_user: root

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

[root@zabbix_server ansible]# tail -n 5 /etc/ansible/hosts
[LYP]
#172.28.102.130 ansible_user=root ansible_ssh_pass=Cm146688!
#172.28.102.131 ansible_user=root ansible_ssh_pass=Cm146688!
172.28.102.130 http_port=81
172.28.102.131 http_port=82

公共组变量定义样例

[root@zabbix_server ansible]# cat hostname.yaml 
---
- hosts: LYP
  remote_user: root

  tasks:
   - name: set hostname
     hostname: name={{ name1 }}{{ http_port }}.{{ name2 }}

[root@zabbix_server ansible]# tail -9 /etc/ansible/hosts
[LYP]
#172.28.102.130 ansible_user=root ansible_ssh_pass=Cm146688!
#172.28.102.131 ansible_user=root ansible_ssh_pass=Cm146688!
172.28.102.130 http_port=81
172.28.102.131 http_port=82

[LYP:vars]
name1=web
name2=com

使用变量文件

[root@zabbix_server ansible]# cat vars.yml 
var1: httpd
var2: vsftpd

[root@zabbix_server ansible]# cat test.yml 
---
- hosts: LYP
  remote_user: root
  vars_files:
   - vars.yml

  tasks:
   - name: create file
     file: name=/home/test2/{{ var1 }}.log state=touch
   - name: crete file2
     file: name=/home/test2/{{ var2 }}.log state=touch

[root@zabbix_server ansible]# ansible-playbook test.yml 

PLAY [LYP] **************************************************************************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************************************************************
ok: [172.28.102.130]
ok: [172.28.102.131]

TASK [create file] ******************************************************************************************************************************************************************************************
changed: [172.28.102.131]
changed: [172.28.102.130]

TASK [crete file2] ******************************************************************************************************************************************************************************************
changed: [172.28.102.130]
changed: [172.28.102.131]

PLAY RECAP **************************************************************************************************************************************************************************************************
172.28.102.130             : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
172.28.102.131             : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@zabbix_server ansible]# ansible LYP -m shell -a 'ls /home/test2/'
172.28.102.130 | CHANGED | rc=0 >>
httpd.log
vsftpd.log
172.28.102.131 | CHANGED | rc=0 >>
httpd.log
vsftpd.log
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值