自动化运维工具Ansible之LNMP实践环境部署

 

Ansible-实战指南-LNMP环境部署,并使用zabbix监控nginx

 

主机规划

 

系统初始化:必要的系统初始化git

基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息)github

业务组件包括:MySQL、memcached、nginx、PHP、haproxy、keepalivedweb

添加用户帐号

说明:数据库

一、 运维人员使用的登陆帐号;架构

二、 全部的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放;app

三、 该用户也被 ansible 使用,由于几乎全部的生产环境都是禁止 root 远程登陆的(所以该 yun 用户也进行了 sudo 提权)。运维

1 # 使用一个专门的用户,避免直接使用root用户
2 # 添加用户、指定家目录并指定用户密码
3 # sudo提权
4 # 让其它普通用户能够进入该目录查看信息
5 useradd -u 1050 -d /app yun && echo '123456' | /usr/bin/passwd --stdin yun
6 echo "yun  ALL=(ALL)       NOPASSWD: ALL" >>  /etc/sudoers
7 chmod 755 /app/

 

备注:记得在管理机 172.16.1.180 上实现对其余机器的免密登陆。ssh

Ansible 配置清单Inventory

 1 [yun@ansi-manager ansible_info]$ cat hosts_key
 2 # 业务组件分组
 3 [manageservers]
 4 172.16.1.180:22
 5 
 6 [keepalivedserver]
 7 172.16.1.181
 8 172.16.1.182
 9 
10 [proxyservers]
11 172.16.1.18[1:2]:22
12 
13 [webservers]
14 172.16.1.183 ansible_ssh_port=22
15 172.16.1.184 ansible_ssh_port=22
16 172.16.1.185 ansible_ssh_port=22
17 
18 [memservers]
19 172.16.1.185
20 
21 [dbservers]
22 172.16.1.183
23 172.16.1.184
24 172.16.1.185
25 
26 [dbservers_master]
27 172.16.1.183
28 
29 [dbservers_slave]
30 172.16.1.184
31 172.16.1.185
32 
33 
34 # 基础组件分组
35 ## 数据库组件分组
36 [zabbixdbserver]
37 172.16.1.180
38 
39 ## 基础业务组件分组
40 [zabbixserver]
41 172.16.1.180

 

系统架构

 

实战项目GitHub地址

该项目已经放在了GitHub上,地址以下:memcached

https://github.com/zhanglianghhh/ansible-example-lnmp

 

如须要请自行访问或下载。

 

项目任务分解

获取需求并拿到机器的时候,这时须要咱们作以下分析:

一、主机规划:每台主机用于部署什么模块【本文第一节实际已经规划好了】

二、普通用户建立与提权:若是机器是公司统一初始化的,那么能够不建立普通用户,只需提权便可。

三、ansible管理机到其余机器的免密登陆。

四、具体任务分解:包括机器必要的初始化、基础组件部署与业务组件部署。若是公司对机器作了统一的初始化,那么视状况而定。

## 系统初始化
1、基础镜像源与epel镜像源
2、必要的包安装
3、指定环境变量,如:为history命令添加时间信息;操做命令记录到系统日志
4、用户名、主机添加背景色,用于生产环境,这样能够减小人为的误操做
5、别名配置,如:alias grep='grep --color=auto'
6、内核参数修改,生产中视状况而定
7、建立web站点用户 www。
8、建立必要的目录,如:软件包存放目录,后期运维脚本存放目录

## 基础组件部署
1yum 安装mariadb,用于存放监控信息
2yum 安装zabbix server
3yum 安装zabbix agent

## 业务组件部署
1、MySQL 数据库部署
2、MySQL 主从实现
3、memcached 部署
4、nginx 部署
5、PHP 部署
6、nginx、PHP整合,nginx、PHP、MySQL整合,nginx、PHP、memcached整合
7、haproxy 部署
8、keepalived 部署

 

项目编写与后续验证步骤

请参见:

https://github.com/zhanglianghhh/ansible-example-lnmp

 

这里包含:涉及目录与文件说明;服务部署;中止服务【由于是我的电脑经过虚拟机实现的】;服务验证。

为了不重复这里就不单独说了,参见上面地址便可。

 


———END———
若是以为不错就关注下呗 (-^O^-) !

相关文章
相关标签/搜索