ansible安装nginx
一、创建主文件夹及各子文件夹cd/etc/ansible
mkdir nginx_install
mkdir-p nginx_install/roles/{common,install}
mkdir -p /etc/ansible/nginx_install/roles/common/tasks
cd /etc/ansible/nginx_install/roles/install
mkdir handlers files meta tasks templates vars
#说明:roles目录下有三个角色,common为一些准备操作,install为安装nginx的操作
#每个角色下面又有几个目录,handlers下面是当发生改变时要执行的操作,通常用在配置文件发生改变,重启服务。#files为安装时用到的一些文件,meta为说明信息,说明角色依赖等信息,tasks里面是核心的配置文件,templates通常#存一些配置文件,启动脚本等模板文件,vars下为定义的变量
二、拷贝压缩包到到files中
#需要事先准备好安装用到的文件,具体如下:
#在一台机器上事先编译安装好nginx,配置好启动脚本,配置好配置文件
#安装好后,我们需要把nginx目录打包,并放到/etc/ansible/nginx_install/roles/install/files/下面
cp /usr/local/nginx.tar.gz /etc/ansible/nginx_install/roles/install/files/
三、拷贝配置文件、启动文件到templates中
#启动脚本、配置文件都要放到/etc/ansible/nginx_install/roles/install/templates下面
cp /usr/local/nginx/conf/nginx.conf /etc/ansible/nginx_install/roles/install/templates
cp /etc/init.d/nginx /etc/ansible/nginx_install/roles/install/templates
四、创建common文件夹的子入口yml文件
cd /etc/ansible/nginx_install/roles/common/tasks
vimmain.yml
- name: Install initializtion require software
yum: name=` item ` state=installed #循环安装相关软件
with_items:
- gcc
- zlib-devel
- pcre-devel
- openssl-devel
五、创建变量var的子入口yml文件
cd /etc/ansible/nginx_install/roles/install/vars/
vimmain.yml
nginx_user: www
nginx_port: 80
nginx_web_dir: /data/www
nginx_version: 1.6.3
nginx_basedir: /usr/local/nginx
六、创建copy任务
vim /etc/ansible/nginx_install/roles/install/tasks/copy.yml
- name: Copy Nginx Software #拷贝nginx.tar.gz
copy: src=nginx.tar.gz dest=/tmp/nginx.tar.gz owner=root group=root #src的根目录即为/etc/ansible/nginx_install/roles/install/files/
- name: Uncompression Nginx Software #解压Ngnx.tar.gz到/usr/local/
shell: tar zxf /tmp/nginx.tar.gz -C /usr/local/
- name: Copy Nginx Start Script #拷贝启动脚本
template: src=nginx dest=/etc/init.d/nginx owner=root group=root mode=0755
- name: Copy Nginx Config #拷贝配置文件
template: src=nginx.conf dest=` nginx_basedir `/conf/ owner=root group=root mode=0644
#nginx_basedir在var目录已经定义
七、创建install任务
vim /etc/ansible/nginx_install/roles/install/tasks/install.yml //内容如下
- name: Create Nginx User #创建用户
user: name=` nginx_user ` state=present createhome=no shell=/sbin/nologin
- name: Start Nginx Service #启动服务
service: name=nginx state=started
- name: Add Boot Start Nginx Service#添加开机启动
shell: chkconfig --level 345 nginx on
- name: Delete Nginx compression files #删除nginx.tar.gz
shell: rm -rf /tmp/nginx.tar.gz
八、创建install文件夹的子入口yml文件
vim /etc/ansible/nginx_install/roles/install/tasks/main.yml
- include: copy.yml
- include: install.yml #调用copy和install
九、创建总入口yml文件
vim/etc/ansible/nginx_install/install.yml
---
- hosts: testhost
remote_user: root
gather_facts: True
roles:
- common #总入口yml文件调动roles下的common和install文件夹
- install
十、执行安装
ansible-playbook /etc/ansible/nginx_install/install.yml
页:
[1]