ansible安装nginx(实现回滚发布功能:下一篇博客。没想到写长了)

一、准备工作

1、准备两台机器

sai: 192.168.131.132  ——》 ansible的服务端

luojy: 192.168.131.133 ——》 ansible的客户端

2、132机器上安装ansible

(1)yum install -y epel-release
(2)yum install -y ansible
 
3、132,133机器上关闭防火墙
 
4、设置hostname,/etc/sysconfig/network 上定义
132机器:HOSTNAME=web1.luojy.com
133机器:HOSTNAME=web3.luojy.com
 
5、编辑hosts文件
192.168.131.132 web1.luojy.com
192.168.131.133 web3.luojy.com
 
 
6、Ansible 配置密钥(因为ansible是通过 sshd 来实现客户端和服务端通信的)
注意:如果要对本机即132上用ansible来做操作,也需要保存公钥的~~~ 
(1)132机器上生成密钥对:ssh-keygen -t rsa
(2)id_rsa.pub 拷贝到 131上(.ssh/authorized_keys,  设置600只读权限)
 
7、/etc/ansible/hosts 添加

这个web2.luojy.com 我用来做别的事了,而且web2是已经安装过nginx的,web3没有,所以就web3咯~~

验明正身,请看web3!!!

二、安装nginx
(i)思路:
web1机器上编译安装好nginx、打包,然后再用ansible去下发到各个客户端机器上
把nginx目录打包,把配置文件放到指定目录下
把tar包打包,放到其他机器上安装
由于nginx会依赖库文件,所以对方机器上要安装依赖的包/库  ——》 yum
 
(ii)具体安装过程
web1
1、web1上原来已安装nginx
打包工作
(1) cd /usr/local
(2) tar zcvf nginx.tar.gz 
 
2、cd /etc/ansible;     mkdir nginx_install 
3、cd nginx_install;   mkdir roles
4、cd roles;              mkdir common install

目录说明:

(1)common: 一些准备操作
(2)install: 安装nginx的操作
 
5、创建common下tasks目录,里面是web3机器需要安装的依赖包
cd common/;  mkdir tasks; 
(1)vim main.yml

 
6、进入install目录下,创建四个目录
(1)  cd  install/
(2)mkdir tasks vars files templates
说明:
(a)tasks: 里面是核心的配置文件
(b)vars:定义的变量
(c)files:安装时用到的一些文件
(d)templates:存一些配置文件,启动脚本等模板文件
 
7、复制打包文件,配置文件,启动脚本到相应目录下
(1)cp /usr/local/nginx/tar.gz  files/
(2)cp /usr/local/nginx/conf/nginx.conf  templates/
(3)cp /etc/init.d/nginx  templates/
 
8、定义变量(第2行非必须)
vim var/main.yml

9、vim tasks/copy.yml   ——》 顾名思义,就是指定 copy 一些东西到对方机器哒,具体看name解说

说明:

(a)copy: src=nginx.tar.gz   直接这样写是因为.gz文件是在files下的

(b)template: src=nginx.conf    也是会从templates下直接找到 .conf文件

(c)nginx_basedir    在var目录下
 
 
10、vim tasks/install.yml ——》 安装(非常好懂是吧),运行user,开启服务,加入系统服务列表

善后工作都做埋了(删除 .gz)

11、vim tasks/main.yml   ——》 就是串起 copy.yml 和 install.yml 的

结构是这样的

12、定义大boss ——》总入口配置文件

(1)cd /etc/ansible/nginx_install/

(2)vim install.yml

(iii)执行命令 + 测试

1、web1执行:  ansible-playbook install.yml

warning无伤大雅~~~

我记得运行这条命令出了一个小问题

如下----------------------------------------------------------------------------------------

解决方法

web3安装:yum install -y libselinux-python

--------------------------------------------------------------------------------------------

2、web3(luojy)测试

(1)测试依赖包:rpm -qa |egrep 'pcre|openssl|zlib'

(2)测试拷贝解压

(3)测试进程启动: ps aux |grep nginx

(4)测试系统服务:chkconfig --list nginx  345启动

好啦~~~搞掂~~~~~ ^___^

ansible安装nginx的更多相关文章

  1. 【ansible】使用ansible安装nginx

    一.主机准备 ServerIP:10.10.10.102 ClientIP:  10.10.10.103,10.10.10.104 二.安装ansible yum -y install ansible ...

  2. Ansible安装配置Nginx

    一.思路 现在一台机器上编译安装好nginx.打包,然后在用ansible去下发 cd /etc/ansible 进入ansible配置文件目录 mkdir roles/{common,install ...

  3. 使用Ansible安装部署nginx+php+mysql之安装nginx(1)

    使用Ansible安装nginx 1.nginx.yaml文件 --- - hosts: clong remote_user: root gather_facts: no tasks: # 安装epe ...

  4. ansible 初探nginx安装

    我的配置: /etc/hosts: /etc/ansible/hosts: nglinx安装包: ansible自动化安装nginx: 1.安装ansible. 2.创建目录结构: mkdir -p ...

  5. ansible的playbook进行yum批量安装nginx最新版本

    环境:centos7 版本:nginx最新版本 软件: ansible 作用: 进行批量执行不同机器上,进行安装nginx版本 检查脚本是否正确: [root@ansible-test ansible ...

  6. Ansible 使用 Playbook 安装 Nginx

    思路:先在一台机器上编译安装好 Nginx,打包,然后通过 Ansible 下发 [root@localhost ~]$ cd /etc/ansible/ [root@localhost ansibl ...

  7. ansible案例-安装nginx

    一.创建目录: mkidr -p playbook/{files,templates}   二.自定义index.html文件 $ vim playbook/templates/index.html. ...

  8. 使用Ansible安装部署nginx+php+mysql之安装php(2)

    二.使用Ansible安装php 1.php.yaml文件内容 - hosts: clong remote_user: root gather_facts: no tasks: # 安装libseli ...

  9. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

随机推荐

  1. 新提交审核app保留检查更新入口将被拒绝

    3月起要求关闭所有App内的检查更新功能,苹果App Store将向用户自动提示更新,新提交审核版本如果保留检查更新入口审核时将被拒绝,请各产品团队重点关注. 10.6 - Apple and our ...

  2. RedHat6/Centos6.5安装mongodb php driver

    条件: 安装apache 安装php 1.下载mongodb phh driver 下载地址:pecl wget http://pecl.php.net/get/mongo-1.5.8.tgz 2.解 ...

  3. linux下安装mysql问题总结(一)mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended

    linux下安装mysql数据库 linux版本:CentOS release 6.8 (Final) mysql版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.g ...

  4. 我的Android进阶之旅------>Android 众多的布局属性详解

    Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料,希望对读者有用. 第一类:属性值为true或false android:layout_centerH ...

  5. K-M-P

    分段K-M-P 只需要记录上一段已经匹配了的长度,再接着从匹配下一段就可以了.

  6. new AnnotationConfigApplicationContext(MyBean.class)时,发生了什么?

    当我们run一段代码,像下面这样两行.spring究竟做了什么些,让整个容器准备就绪,交付给用户直接可用的各种特性.为了弄清楚,默默梳理记录下来. public static void main (S ...

  7. Python进阶(3)_进程与线程中的lock(线程中互斥锁、递归锁、信号量、Event对象、队列queue)

    1.同步锁 (Lock) 当全局资源(counter)被抢占的情况,问题产生的原因就是没有控制多个线程对同一资源的访问,对数据造成破坏,使得线程运行的结果不可预期.这种现象称为“线程不安全”.在开发过 ...

  8. pyhton3 time模块

    来自:菜鸟教程 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为 ...

  9. 安装好MySQL后就开始学习如何后台创建自己的数据库吧!

    MySQL创建数据库的方式不像SQL Server那样有图形界面,而是使用DOS窗口创建的,接下来就是创建MySQL数据库的具体步骤. ↓↓↓↓↓↓↓↓      ↓↓↓↓↓↓↓↓      ↓↓↓↓ ...

  10. js判断一个数组是否包含一个指定的值

    今天看了一下  有好几种方法  总结一下 1:array.indexOf   此方法判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1 let arr = ['something', ...