Ansible-實戰指南-LNMP環境部署,並使用zabbix監控 ...
Ansible-實戰指南-LNMP環境部署,並使用zabbix監控
主機規劃
系統初始化:必要的系統初始化
基礎組件包括:zabbix監控,mariadb(用於存放zabbix監控信息)
業務組件包括:MySQL、memcached、nginx、PHP、haproxy、keepalived
添加用戶賬號
說明:
1、 運維人員使用的登錄賬號;
2、 所有的業務都放在 /app/ 下「yun用戶的家目錄」,避免業務數據亂放;
3、 該用戶也被 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 上實現對其他機器的免密登錄。
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上,地址如下:
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^-) !