ansible实战-nginx安装

简介:

背景:尽管yum和service模块安装和管理相应服务很方便,但实际生产中,一般需要使用源码安装


思路:先在一台机器上编译安装好nginx,打包,再用ansible分发下去


1. 创建相关目录和配置文件,整体树状图

    mkdir /etc/ansible/nginx_install


 wKiom1jU2MOB3hPTAAAqduXxvD4295.pngspacer.gif



1.1 vim /etc/ansible/nginx_install/install.yml #总安装文件

1
2
3
4
5
6
7
---
- hosts: agent.huangzp.com
   remote_user: root
   gather_facts: True
   roles:
    - common
    install


wKioL1jU2OTTHH8qAAATqOny6UE936.png


spacer.gif

1.2 mkdir -p roles/commom/tasks  # 安装前准备工作目录以及配置文件

commom:下面建一个tasks目录就行了

vim /etc/ansible/nginx_install/roles/common/tasks/main.yml  # 入口文件main.yml,安装nginx依赖包

1
2
3
4
5
6
- name:  install  initaliztion require software
   yum: name={{ item }} state=installed
   with_items:
     - zlib-devel
     - pcre-devel
     - openssl-devel


wKiom1jU2POSpdDcAAAfGBu5N0I630.png



1.3 mkdir -p roles/install/{handlers,files,meta,tasks,template,vars} # 安装主配置目录

tasks:核心配置文件,分发资源和安装nginx


1)vim /etc/ansible/nginx_install/roles/install/tasks/main.yml  #入口文件,包含了 copy.yml和install.yml两个配置文件

1
2
- include: copy.yml
- include:  install .yml


wKioL1jU2SiDoGF0AAAQTECvPN8428.png

spacer.gif


2) vim /etc/ansible/nginx_install/roles/install/tasks/copy.yml  #拷贝压缩包、解压缩、拷贝启动脚本、拷贝配置文件

1
2
3
4
5
6
7
8
- name: copy nginx software
   copy: src=nginx. tar .gz dest= /tmp/nginx . tar .gz owner=root group=root   #copy模块相对目录files
- name: uncompression nginx software
   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   #template模块相对目录templates
- name: copy nginx config
   template: src=nginx.conf dest={{ nginx_basedir }} /conf/  owner=root goup=root mode=0644


wKiom1jU2TnClAIRAAA5lkJWNO8362.pngspacer.gif



3)vim /etc/ansible/nginx_install/roles/install/tasks/install.yml # 创建运行用户、启动nginx服务、添加至系统服务、删除压缩文件

1
2
3
4
5
6
7
8
- 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
   shell:  rm  -rf  /tmp/nginx . tar .gz


wKioL1jU2UnzePDCAAAvG-MSXLI600.png


spacer.gif

vars:定义变量

vim /etc/ansible/nginx_install/roles/install/vars/main.yml #定义变量运行用户、端口、安装目录

1
2
3
nginx_user: www
nginx_port: 80
nginx_basedir:  /usr/local/nginx


wKiom1jU2VeicNhaAAAVMaVLf38181.png

spacer.gif

files:存放nginx.tar.gz等文件

tar -zcf nginx.tar.gz  /usr/local/nginx

cp /usr/local/nginx.tar.gz /etc/ansible/nginx_install/roles/install/files/


templates:模板配置文件,如启动脚本模板

cp /usr/local/nginx/conf/nginx.conf /etc/ansible/nginx_install/roles/install/template/

cp /etc/init.d/nginx /etc/ansible/nginx_install/roles/install/template/


handlers:发生改变要执行的操作,如配置文件改变,则重启服务


meta:说明信息,角色依赖等,一般用不着



2. 执行总配置文件ansible-playbook install.yml

spacer.gif

wKiom1jU_dLzifZYAAAxlGW0MQY681.png










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1910084,如需转载请自行联系原作者
目录
相关文章
|
8天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible实战应用
【9月更文挑战第33天】本文将带你深入理解Ansible,一个强大的自动化运维工具。我们将从基础概念开始,逐步探索其配置管理、任务调度等功能,并通过实际案例演示其在自动化部署和批量操作中的应用。文章旨在通过浅显易懂的语言和实例,为读者揭开Ansible的神秘面纱,展示其在简化运维工作中的强大能力。
114 64
|
5天前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
5天前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
23小时前
|
Ubuntu 搜索推荐 应用服务中间件
Nginx安装与使用
Nginx安装与使用
|
1天前
|
负载均衡 监控 应用服务中间件
基于 Nginx 的大型互联网集群架构与实战方案
基于 Nginx 的大型互联网集群架构与实战方案
|
22小时前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
23小时前
|
应用服务中间件 程序员 开发工具
|
23小时前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
23小时前
|
Ubuntu Unix 应用服务中间件
Ubuntu16.04.1 安装Nginx
Ubuntu16.04.1 安装Nginx
|
3天前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
12 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)