小机灵鬼|自动化运维工具:ansible(二)( 四 )


  • ansible-playbook -e varname=value
4.在playbook中定义
[root@ansible ansible]#vim apps.yml ---- hosts: allremote_user: roottasks:- name: install packageyum: name={{ pkname }}#定义变量- name: start serviceservice: name={{ pkname }} state=started enabled=yes[root@ansible ansible]#ansible-playbook -e 'pkname=vsftpd' -C apps.ymlPLAY [all] *************************************************************************TASK [Gathering Facts] *************************************************************ok: [192.168.100.20]ok: [192.168.100.10]TASK [install package] *************************************************************changed: [192.168.100.20]changed: [192.168.100.10]TASK [start service] ***************************************************************changed: [192.168.100.10]changed: [192.168.100.20]PLAY RECAP *************************************************************************192.168.100.10: ok=3changed=2unreachable=0failed=0skipped=0rescued=0ignored=0192.168.100.20: ok=3changed=2unreachable=0failed=0skipped=0rescued=0ignored=0[root@ansible ansible]#ansible-playbook -e 'pkname=vsftpd' apps.ymlPLAY [all] *************************************************************************TASK [Gathering Facts] *************************************************************ok: [192.168.100.10]ok: [192.168.100.20]TASK [install package] *************************************************************changed: [192.168.100.20]changed: [192.168.100.10]TASK [start service] ***************************************************************changed: [192.168.100.10]changed: [192.168.100.20]PLAY RECAP *************************************************************************192.168.100.10: ok=3changed=2unreachable=0failed=0skipped=0rescued=0ignored=0192.168.100.20: ok=3changed=2unreachable=0failed=0skipped=0rescued=0ignored=0[root@ansible ansible]#ansible all -m shell -a 'ss -ntl|grep 21'192.168.100.20 | CHANGED | rc=0 >>LISTEN032:::21:::*192.168.100.10 | CHANGED | rc=0 >>LISTEN032:::21:::*也可以在playbook中 , 定义vars
小机灵鬼|自动化运维工具:ansible(二)也可以使用变量文件:
[root@ansible ansible]#vim vars.yml var1: httpdvar2: vsftpd[root@ansible ansible]#vim testvar.yml ---- hosts: allremote_user: rootvars_files:- vars.ymltasks:- name: install packageyum: name={{ var1 }}- name: create filefile: name=/root/{{ var2 }}.log state=touch[root@ansible ansible]#ansible-playbook -C testvar.yml ......[root@ansible ansible]#ansible-playbook testvar.yml...... [root@ansible ansible]#ansible all -a 'ls /root'192.168.100.20 | CHANGED | rc=0 >>......vsftpd.log192.168.100.10 | CHANGED | rc=0 >>......vsftpd.log[root@ansible ansible]#ansible all -m shell -a 'rpm -q httpd'[WARNING]: Consider using the yum, dnf or zypper module rather than running 'rpm'.If you need to use command because yum, dnf or zypper is insufficient you can add'warn: false' to this command task or set 'command_warnings=False' in ansible.cfgto get rid of this message.192.168.100.20 | CHANGED | rc=0 >>httpd-2.4.6-67.el7.centos.x86_64192.168.100.10 | CHANGED | rc=0 >>httpd-2.4.6-67.el7.centos.x86_64


推荐阅读