Ansible-實戰指南-LNMP環境部署

主機規劃

序號 主機名稱 操作系統版本 內網IP 外網IP(模擬) 安裝軟件
0 對外提供訪問 CentOS7.5 10.0.0.170 keepalived【無主機,只有一個虛擬VIP】
1 ansi-haproxy01 CentOS7.5 172.16.1.181 10.0.0.181 zabbix-agent、haproxy
2 ansi-haproxy02 CentOS7.5 172.16.1.182 10.0.0.182 zabbix-agent、haproxy
3 ansi-web01 CentOS7.5 172.16.1.183 10.0.0.183 zabbix-agent、nginx+php、mysql(master)
4 ansi-web02 CentOS7.5 172.16.1.184 10.0.0.184 zabbix-agent、nginx+php、mysql(slave)
5 ansi-web03 CentOS7.5 172.16.1.185 10.0.0.185 zabbix-agent、nginx+php、mysql(slave)、memcached
6 ansi-manager CentOS7.5 172.16.1.180 10.0.0.180 Ansible、zabbix-server、zabbix-agent、mariadb「zabbix使用」

系統初始化:必要的系統初始化

基礎組件包括:zabbix監控,mariadb(用於存放zabbix監控信息)

業務組件包括:MySQL、memcached、nginx、PHP、haproxy、keepalived

添加用戶賬號

說明:

1、 運維人員使用的登錄賬號;

2、 所有的業務都放在 /app/ 下「yun用戶的家目錄」,避免業務數據亂放;

3、 該用戶也被 ansible 使用,因爲幾乎所有的生產環境都是禁止 root 遠程登錄的(因此該 yun 用戶也進行了 sudo 提權)。

# 使用一個專門的用戶,避免直接使用root用戶
# 添加用戶、指定家目錄並指定用戶密碼
# sudo提權
# 讓其它普通用戶可以進入該目錄查看信息
useradd -u 1050 -d /app yun && echo '123456' | /usr/bin/passwd --stdin yun
echo "yun  ALL=(ALL)       NOPASSWD: ALL" >>  /etc/sudoers
chmod 755 /app/

備註:記得在管理機 172.16.1.180 上實現對其他機器的免密登錄。

Ansible 配置清單Inventory

[yun@ansi-manager ansible_info]$ cat hosts_key
# 業務組件分組
[manageservers]
172.16.1.180:22

[keepalivedserver]
172.16.1.181
172.16.1.182

[proxyservers]
172.16.1.18[1:2]:22

[webservers]
172.16.1.183 ansible_ssh_port=22
172.16.1.184 ansible_ssh_port=22
172.16.1.185 ansible_ssh_port=22

[memservers]
172.16.1.185

[dbservers]
172.16.1.183
172.16.1.184
172.16.1.185

[dbservers_master]
172.16.1.183

[dbservers_slave]
172.16.1.184
172.16.1.185


# 基礎組件分組
## 數據庫組件分組
[zabbixdbserver]
172.16.1.180

## 基礎業務組件分組
[zabbixserver]
172.16.1.180

系統架構

在這裏插入圖片描述

實戰項目GitHub地址

該項目已經放在了GitHub上,地址如下:

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

如需要請自行訪問或下載。

在這裏插入圖片描述

項目任務分解

獲取需求並拿到機器的時候,這時需要我們做如下分析:

1、主機規劃:每臺主機用於部署什麼模塊【本文第一節實際已經規劃好了】

2、普通用戶創建與提權:如果機器是公司統一初始化的,那麼可以不創建普通用戶,只需提權即可。

3、ansible管理機到其他機器的免密登錄。

4、具體任務分解:包括機器必要的初始化、基礎組件部署與業務組件部署。如果公司對機器做了統一的初始化,那麼視情況而定。

## 系統初始化
1、基礎鏡像源與epel鏡像源
2、必要的包安裝
3、指定環境變量,如:爲history命令添加時間信息;操作命令記錄到系統日誌
4、用戶名、主機添加背景色,用於生產環境,這樣可以減少人爲的誤操作
5、別名配置,如:alias grep='grep --color=auto'
6、內核參數修改,生產中視情況而定
7、創建web站點用戶 www。
8、創建必要的目錄,如:軟件包存放目錄,後期運維腳本存放目錄

## 基礎組件部署
1、yum 安裝mariadb,用於存放監控信息
2、yum 安裝zabbix server
3、yum 安裝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^-) !

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章