码迷,mamicode.com
首页 > 其他好文 > 详细

ansible(五)variables(一)定义

时间:2014-07-02 06:10:50      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:用户   ansible   variables   

说起变量,ansible中的变量,差不多等于salt-stack里面的pillar+grains吧

ansible中的变量主要来源于,楼主总结了一下,大概有这么几个地方吧

  1. Inventory(host vars,group vars)

  2. playbook里面

  3. 命令行

  4. playbook执行task过程中产生结果,可以register起来,作为变量给下面的task使用

  5. roles里面

  6. 来自于nodes上面的facts

这些类型的变量,1-4一般来说都是咱们用户自己定义的,而5facts则主要是ansible从nodes上面拉取过来的,当然facts也可以自己定义。

下面咱们就来看看,这些变量是怎么玩的吧?

先看看Inventory里面的变量吧,这个第二篇的时候写过,再写一下吧
bubuko.com,布布扣

再看看playbooks里面的变量吧

bubuko.com,布布扣

OK,大伙也看到了playbooks里面可以定义变量,也可以导入外部的文件里面的变量

好,大伙再一块看看命令行里面的变量吧。

命令行,传递变量给playbooks大概有三种方式吧

看看第1种方式吧,比较简单了。

bubuko.com,布布扣

第2种方式,以json的格式传递变量。


bubuko.com,布布扣

第3种方法,传入json文件。不过,第二种,第三种方法,一般用于变量形式较复杂的情况。不过,一般估计很少用吧,因为在命令行传遍了本来就不多用吧,还是第一种命令行传递方式稍微常用点。

bubuko.com,布布扣

OK,第四种方法,register task的结果,作为变量,给下面的task使用

看一下,小例子。这个比较简单,就不打印结果了。

bubuko.com,布布扣


OK,定义变量的第五种方法,在roles里面。

这个就不多说了。上一篇刚写过。

bubuko.com,布布扣

第六种方法,从nodes获取facts,facts和salt-stack里面的grains差不多,主要是nodes本身的一个系统信息,bios信息,网络,硬盘等等信息。。不过楼主观察了下,facts比salt-stack中的grains获取的信息。要更多一些。

bubuko.com,布布扣


OK,咱们在这里说怎么从nodes上获取facts,前面咱们不是说了,可以自己定义facts吗?

自定义facts有多种方法,有能力的同学,可以直接去修改,setup这个模块。不过官方的东西,咱们还是不要随便改了。

第二种方法,定义在nodes上面,默认定义在/etc/ansible/fact.d/*fact里面。

咱们定义在这里面文件的格式,有三种格式吧,分别是ini格式,json格式,或者可执行文件,不过他们返回的必须是json格式。

看个例子吧

先看看咱们定义的文件内容分别为json,ini,及可执行的脚本的三个文件吧

bubuko.com,布布扣

OK,在node上创建文件夹并把测试的fact文件传送过去。修改lss.fact这个文件的属性为其它组可执行的权限,否则待会执行不了,楼主用-s参数试了下,也执行不了

bubuko.com,布布扣


好,这种自定义的方法,就算是说完了。还有一种自定义的方法,其实就是自定义模块,只不过这个模块,返回一个facts格式的结果罢了。

好,咱们在ansible的module里面,自定义一个文件夹,放咱们自己的module,然后丢给自定义的module进去
bubuko.com,布布扣


OK,看到了吧,这里面是从chengge这个模块里面得到了一个输出结果,但是我们咋用呢?

其实,我们想用模块里返回的facts,那么显然,我们使用之前,肯定要先执行以下我们自定义的module

OK,看看这个例子吧

先看看playbooks

bubuko.com,布布扣

再看看,执行结果

bubuko.com,布布扣



本文出自 “西风” 博客,请务必保留此出处http://lixcto.blog.51cto.com/4834175/1433138

ansible(五)variables(一)定义,布布扣,bubuko.com

ansible(五)variables(一)定义

标签:用户   ansible   variables   

原文地址:http://lixcto.blog.51cto.com/4834175/1433138

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!