通过ansible全自动yum安装nginx
通过ansible角色roles全自动yum安装nginx
系统redhat7.3
分析手动nginx安装流程
我们要部署一个nginx服务,
具体要做的事:
1. 创建组group
group: nginx
2. 创建用户user,将用户添加进group组中
user:nginx
3.安装nginx的包
yum: nginx
4.根据模版考一些配置文件进去
template: nginx.conf.j2
5.启动nginx服务
service: nginx
这个使用传统的一个剧本就可搞定
现在拆散了,考虑到以后要重复使用,所以这里就当角色来使用
如果这个配置文件又改,还涉及到handlers
将来要实现四个角色,现在先做一个普通角色nginx角色
做之前将这几个机器之前的nginx给卸载了:
```javascript
ansible testB -m shell -a "yum -y remove nginx"
现在发现testB主机组中的主机中没有nginx包
ansible testB -m shell -a "rpm -q nginx"
查看有没有nginx的帐号:
ansible testB -a "getent passwd nginx"
发现这里是有帐号的
帐号是在安装的时候生成的,所以在卸载的时候不会主动去删除帐号
的卸载卸载
包括组,也是有的
将用户和组删掉:
第二次重新安装时可以删除:
然后发现报错,报错说/var/cache/nginx这个目录不属于nginx,所以不能删除
所以我们查看这个目录:
文件权限
可以看到这里的用户已经删除了,所以这里将这个目录直接删掉(不用在修改该目录和该目录下文件的属主和属组了)
chown username.groupname file|dir ##更改文件或者目录的所有人所有组
规划子目录:
上面是任务tasks,下面用到模版template
这里需要两个目录,一个放任务的,一个放模板的
cd ansible/roles/
cd nginx/
进到这个我们进到要创建的nginx角色的目录中去,在这些子目录下,继续按照自己的规则创建子目录,这些子目录的分类可以根据自己的情况来分类
这个图里圆形: 文件
方框: 目录
项目介绍
这个图就是一个角色编排端的文件夹结构,剧本文件userconf.yml将来要调用角色roles,这个角色roles是一个统一的文件夹,roles文件夹里有各自独立的文件夹。
这里图中的例子是git,我们这里配置的例子是httpd,memcache,mysql,nginx,实际上是类似的。
git是一个软件更新管理版本的软件,linux内核就是由git来进行管理的,linux的内核现在就是由git来进行版本控制的。
这里的git也是个角色名文件夹,就相当于我们这里的httpd,……,在git下面又创建了独立的文件夹tasks(任务),files(文件拷贝),vars(专门放变量),