ansible角色role间的互相调用和标签tags的使用

本文详细介绍了如何在Ansible中实现角色(role)间的互相调用,包括在main.yml中定义调用其他角色的任务,以及如何正确设置源文件路径。同时,文章还探讨了标签(tags)的使用,解释了如何通过标签选择性地执行特定角色的任务,以提高运维效率。
摘要由CSDN通过智能技术生成

ansible角色role间的互相调用和标签tags的使用


前面熟悉了角色的基本使用:基本思想就是模块化,将不同的东西分类放到不同的文件夹里,管理起来更清晰

在这里插入图片描述
前面通过角色在nginx里面定义了多个任务包括模版的使用已经介绍了

如果要定义别的角色,比如httpd这个角色
我们现在要在httpd这个角色中搭建httpd,实现httpd服务,httpd服务和nginx是同一个类型的web服务,通常不会在一个主机上同时实现httpd和nginx服务,一般要实现的是不同的服务,httpd也可以实现类似的功能,比如建立httpd的用户,把包装好,然后把服务启动,配置httpd

查看testB上有没有apache账户:
在这里插入图片描述
可以发现这里的testB组里的server2主机是

卸载httpd服务,删除apache用户

ansible testB -m shell -a "yum remove -y httpd"

在这里插入图片描述
在这里插入图片描述
使用ansible的user删掉apache用户(同时删掉家目录(删掉用户的数据)remove=yes):

ansible testB -m user -a "name=apache state=absent remove=yes"

在这里插入图片描述环境现在干净了,服务删了,帐号也不存在了

1.要建立apache账户

cat user.yml 
- name: create user
  user: name=apache system=yes shell=/sbin/nologin

#system=yes 让用户具有系统的信息,要指定系统属性,还要指定用户是伪用户(一直不登陆shell=/sbin/nologin,是为了进程和文件需要的),之前指定过uid
这里的组就不指定了,因为用户创建的时候,组自动就创建好了
在这里插入图片描述
将创建的user.yml放到tasks模块中
在这里插入图片描述

2.部署软件:

apache可以使用yum安装,也可以使用编译安装,
编译安装的时候,不用在所有的主机上编译,我们现在一个和需要部署的主机系统版本相同的主机上创建好所有编译安装好的所有数据,然后把这些安装目录打包(tar)传到目标主机上就好了,目标主机的版本应该是一样的,传过去后,直接把里面的程序启动起来就可以了

我们现在假设模拟这个过程,现在将这些文件给它复制过去,我们应该使用一个copy:

如果只使用tasks目录的话,这里的copyfile.yml剧本文件里面的file模块的src参数是需要写绝对路径的,将我们数据文件放在files这个目录下,则tasks模块中的copy.yml剧本的src参数只需要写包的名字即可

我们将我们打包好的包(所有编译安装好的所有数据)

rpm -qa httpd
httpd-2.4.6-45.el7.x86_64

cp /etc/httpd/conf/httpd.conf 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值