首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ansible role使用入门

前言

上一篇文章《编写一个Ansible role》中讲到怎么去开发一个role,这篇文章就着重来说说开发完这个role以后,我们该怎么调用这个role。

本文中涉及的试验环境信息如下:

role配置

我们需要面对一个问题,就是我们开发的role放在哪里可以被调用到,针对这个问题,在Ansible中有以下规则:

规则一:自动寻找当前目录的roles文件夹

无论Ansible中对roles path是如何设置的,放在当前子目录roles文件夹下的role都会被找到。

规则二:环境变量定义的文件夹

如果定义了环境变量,那么Ansible也会搜索该文件夹下的role。

规则三:Ansbile配置文件中roles_path定义的文件夹

在这篇《Ansible配置文件ansible.cfg详解》文章中,有说到roles_path,这个变量允许用户自定义放置role的文件夹。如果有多个目录,则使用冒号分隔。

注意:如果没有定义环境变量,那么还可以通过配置变量来定义role文件夹;但是如果已经定义了环境变量,那么将失效。

基础调用role

现在就来调用一下上篇文章中开发的那个测试role,调用脚本如下:

执行效果就和所有内容在一个yaml脚本文件一样;但是Ansible会先执行role,再执行本文件中包含的任务,那有没有办法修改role和task的执行顺序呢?是的,我们可以通过和来调整role和task的执行顺序。

这样就OK了。

调用带有参数role

我们在调用role时,可以按照要求,传递参数进去,目前有两种常用的传参方式:

把role写成JSON Object的格式,直接传入参数

通过vars关键字使用YAML字典格式传入参数

与when一起使用role

有的时候,需要在满足一定条件的情况下再执行role,这个时候就需要和进行配合。比如这样:

总结

role作为学习Ansible中无法避开的一个内容,也是一个非常重要的内容,通过上一篇和这一篇的总结,整体上把我们常用的一些role的知识点都总结到位了,对于我们的日常工作也是足够了,后续的进阶过程中(一般也没啥必要~),可以多读一些其他牛人写的role。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201029A01KB600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券