自動化運維工具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^-) !

相關文章
相關標籤/搜索