前沿:

      ansible的那几个插件都不错,现在咱们聊聊lookup plugins这个插件。 Lookup_plugins主要是用来实现扩展playbook里面各种的字符串和变量的扩展。对于我个人来说,用途不是太大,但是看了下官方提供的lookup_plugins的扩展列表,还是有些想法的。

一开始使用lookup的时,遇到了一个问题,{{ lookup }}里面的数据没有处理,怎么也找不到解决的方法,最后问题在于ubuntu下的版本问题。貌似那个版本对lookup组建支持不好。  

看这个例子,他的意思是说,通过lookup找到file这个插件扩展,file.py的功能主要是查看/etc/foo.txt文件的各种属性 。

这里在show下更多的lookup_plugins的扩展。


pipe一看这名字,管道,执行linux命令。

redis_kv是 链接到redis 做操作 。

我们来看下pipe.py的插件实现代码:

代码很是干脆,就是subprocess执行,然后return ret。

我这跑的一个测试,简单:

wKiom1POHHSQzBgDAAEMR3VpXNk358.jpg

通过结果我们看到,他会从lookup插件,找到相应的插件,然后来处理数据。 这个数据是本地的。

wKiom1POHGvgpQjrAAn1y9XKb-o616.jpg

官方的redis_kv感觉有些麻烦,就自己写了个简单的lookup关于redis的插件。


我的执行过程,playbook里面调用,{{ lookup(‘redis_kv’,'blog’) }}   他会从redis里面get blog这个key键。 



wKiom1POJYOBIeCKAAIGkGJe4ik158.jpg


总结下,这东西 就是用来做playbook的扩展的。 我设立一个变量,但是这个变量是不固定的,需要每次推送playbook的时候,做更新的。  这个时候就可以考虑用lookup plugins插件做支持。



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品

发表评论