ansible剧本-变量的引用与定义
ansible剧本-变量的引用与定义
教程每周二、四、六更新
ansible_facts中变量的引用:
[root@m01 ansible]# cat facts_test1_hosts.yml
---
- hosts: com
tasks:
- name: generate-etc-hosts
lineinfile:
path: /data/hosts
line: "{{ ansible_ens33.ipv4.address }} {{ ansible_hostname }}"
create: yes
# 先验证yml文件的语法没有问题,然后再执行。
[root@m01 ansible]# ansible-playbook facts_test1_hosts.yml --syntax-check
[root@m01 ansible]# ansible-playbook facts_test1_hosts.yml
# 到被管理主机上查看效果:
[root@web01 data]# cat hosts
10.0.0.14 web01
当然用户也可以在/etc/ansible/hosts文件中自定义变量,或者在命令行中赋予自定义变量,我们先看通过命令行定义变量并赋值:
通过命令行定义变量并赋值:
# 定义yml文件,创建卸载任务
[root@m01 ansible]# cat define_vars1.yml
---
- hosts: com
tasks:
- name: install packages
yum:
name: "{{ pkg_name }}"
state: absent
# 卸载之前的vsftpd软件
[root@m01 ansible]# ansible-playbook -e pkg_name=vsftpd define_vars1.yml
当然我们也可以创建一个在命令行灵活掌握卸载或安装的yml:
[root@m01 ansible]# cat define_vars2.yml
---
- hosts: com
tasks:
- name: install packages
yum:
name: "{{ pkg_name }}"
state: "{{ my_action }}" # 注意:action是ansible系统保留关键字,不能直接用action
# 通过my_action来指定是安装还是卸载还是更新到最新版本。
[root@m01 ansible]# ansible-playbook -e 'pkg_name=vsftpd my_action=present' define_vars2.yml
注意:-e参数用来指定变量,有多个变量的时候需要用到引号把参数引起来,并且多个参数之间用空格分开。
请自行完成:使用上面的方式,把刚才安装的vsftpd软件卸载。【一定要做噢】
下一节我们在playbook中定义变量。
雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!
推荐阅读
《一站式教程之集群架构》:
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
Cloud研习社
为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等
公众号
收录于合集 #一站式教程
224个上一篇ansible剧本-变量-常用参数