自動化運維工具Ansible之LNMP實踐環境部署

来源:https://www.cnblogs.com/zhanglianghhh/archive/2020/05/11/12872125.html
-Advertisement-
Play Games

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、創建必要的目錄,如:軟體包存放目錄,後期運維腳本存放目錄

## 基礎組件部署
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^-) !

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一.介紹ClosedXML.Report ClosedXML.Report開源報表 支持net4.0+。 github:https://github.com/ClosedXML/ClosedXML.Report github項目下載慢參考:https://blog.csdn.net/czjnoe/a ...
  • 第四講:https://www.bilibili.com/video/BV15x411x7WN?p=4 添加GridControl,一個GridControl可以對應多個展示數據View,預設會有一個GridView。設置ShowGroupPanel=false。 預設GridView,運行設計器。 ...
  • 先上截圖 修正2 源代碼 修正: 應該將SetTime方法修改為,行號為207行開始修改 var nk = Day_of_week(year, month, 1); if (nk == 0) nk = 7; for (var i = 0; i < nk-1; i++) { Time.Add(new ...
  • 據老一輩的程式員說開發三維程式門檻很高,需要學若幹年才能入門,自從遇上AnyCAD三維控制項後,開發三維應用變的簡單了。當結合nuget後,一切更簡單了。 ...
  • 0.前言 前篇介紹了一些資料庫的基本概念和以及一些常見的資料庫,讓我們對資料庫有了一個初步的認識。這一篇我們將繼續為C 數據操作的基礎填上一個空白 SQL語句。 SQL(Structured Query Language,結構化查詢語言)是一種特定的編程語言,用於管理資料庫系統,操作數據甚至編寫一些 ...
  • openssh 7.9p1版本存在漏洞需要升級到最新的版本。 註意:升級存在風險,導致無法遠程登錄,最好臨時安裝Telnet遠程服務。 1. 系統版本 2. 安裝編輯工具 3. 下載openssh最新包 4. 備份ssh目錄 5.解壓編輯 6.卸載舊版本openssh rpm e nodeps rp ...
  • Cacti[開個嗒]是Linux下的一種軟控軟體,基於PHP開髮帶有圖形化界面,使用方便簡潔,主要基於SNMP協議可以監控的設備有Linux與Windows伺服器。 環境介紹:CenOs6.7 軟體版本:cacti-0.8.8f.tar.gz[需要自己去官方網站下載] 開始安裝 yum -y ins ...
  • 阿裡雲計算 http://mirrors.aliyun.com/centos/ 網易 http://mirrors.163.com/centos/ 北京理工大學 http://mirror.bit.edu.cn/centos/ 重慶大學 http://mirrors.cqu.edu.cn/CentO ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...