关于ansible自定义lookup_plugins插件实现playbook扩展

前沿:

      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插件做支持。


对Golang感兴趣的朋友可以加群: 278517979 !!!
另外如果大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码, 感谢!
另外再次标注博客原地址  xiaorui.cc

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">