6.Ansible.变量vaiables
使用固定的字符串,表示一个不固定的值
变量提供了便捷的方式来管理ansible中的动态值,比如nginx-1.12,后期可能会反复使用到这个版本的值,
如果将此值设置成变量,后续使用和修改起来会很方便,简化了项目的维护。写死就没有意义了。
例如:
这里用变量的方式来替代nginx的版本,当后期nginx的版本有变化时候,直接修改变量值即可,不用挨个去修改模块内的nginx版本信息
vars:
nginx_name: nginx-1.12
-install:
wget: "{{ nginx_name }}".tar.gz
-unzip
tar xfv "{{ nginx_name }}".tar.gz
几种定义变量的方法:
1.外置传参的方法定义
外置传参:-e参数传递变量,在playbook中创建变量名,然后在命令行中用-e参数,给变量传递变量值
1.1先在剧本文件中写好变量名
1.2在命令行执行剧本文件的时候,用-e参数,给变量传递变量值
2.playbook中定义vars,然后引用
3.在外部创建的vars-files文件中定义变量,然后在playbook中引用vars-files,然后再引用变量
3.1.先创建vars-files,在里面定义变量,供后期引用
3.2.在剧本文件里先调用vars-files,然后在模块中引用变量
4.inventory中定义
在/etc/ansible/hosts文件中为主机定义变量
4.1在hosts文件中为主机组定义变量
4.2准备配置文件
4.3下发配置文件到不同的主机,得到的效果应该是不同的
4.4可以看出两个主机的配置文件内容是不一样的,按照之前的变量进行配置的
这种方式适合部署zookeeper和kafka这类的应用
变量引用的优先级
这些方法定义了相同的变量,优先级依次递减
变量注册ansible register
变量注册:(获取任务的结果,将结果存储到变量中。)
1.netstat -lntp —》输出的结果存储到一个变量中 net_system_status
2.我们可以通过debug模块,将变量的值打印出来。