24.27/24.28 用playbook安装nginx
- 思路:
- 1.先在服务端机器上编译安装好nginx(使用源码包安装)
- 2.对nginx打包,然后再用ansible去分发到客户端
目录的框架和流程
准备工作
1.创建相应的目录框架
1 | [root@kun01 ~]# cd /etc/ansible/ |
这里是在总目录下创建roles
目录并在其目录下再创建common
和install
目录,又在他们两个各自目录下创建handlers
,files
,meta
,tasks
,templates
,vars
目录roles
目录下有两个角色,common为一些准备操作,install为安装nginx的操作。每个角色下面又有几个目录,handlers
下面是当发生改变时要执行的操作,通常用在配置文件发生改变,重启服务files
为安装时用到的一些文件meta
为说明信息,说明角色依赖等信息tasks
里面是核心的配置文件templates
通常存一些配置文件,启动脚本等模板文件vars
下为定义的变量
2.把本机Nginx的目录路径打包和配置文件,服务放到对应目录
1 | [root@kun01 nginx_install]# cd /usr/local/ |
把压缩包放在 install/files/1
[root@kun01 local]# mv nginx.tar.gz /etc/ansible/nginx_install/roles/install/files/
把Nginx启动脚本和配置文件放在install/templates/1
2[root@kun01 local]# cp /etc/init.d/nginx /etc/ansible/nginx_install/roles/install/templates/
[root@kun01 local]# cp /usr/local/nginx/conf/nginx.conf /etc/ansible/nginx_install/roles/install/templates/
common目录
创建安装Nginx所依赖的包的yml文件
1 | [root@kun01 roles]# vim common/tasks/main.yml |
install目录
1.创建定义变量的yml文件
1 | [root@kun01 roles]# vim install/vars/main.yml |
2.创建拷贝文件压缩包的yml文件
1 | [root@kun01 roles]# vim install/tasks/copy.yml |
copy
模块会自动到file目录中在源文件 template
模块会自动到template目录下找文件
3.创建远程建立用户,启动服务和删除压缩包的yml文件
1 | [root@kun01 roles]# vim install/tasks/install.yml |
4.创建调用copy和install的yml文件
1 | [root@kun01 roles]# vim install/tasks/main.yml |
include
调用当前目录下的其他文件
总入口
创建总入口的yml文件
1 | [root@kun01 roles]# cd .. |
执行yml远程安装Nginx
1 | [root@kun01 nginx_install]# ansible-playbook install.yml |
在kun02上1
2[root@kun02 ~]# ps aux |grep nginx
[root@kun02 ~]# netstat -lntp |grep 80
在看看总框架
1 | [root@kun01 nginx_install]# tree . |