-
1 # wishpeeer
-
2 # 運維蟲子
關於你提到的Linux伺服器的統一管理,既然已經強調Linux伺服器,伺服器是已經有作業系統安裝了,如果沒有可以透過pxe的方式安裝,網上有很多教程,這裡就不多說了。
本篇介紹一下如何使用ansible工具快速管理幾十、幾百、幾千臺伺服器。
ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、chef、func、fabric)的優點,實現了批次系統配置、批次程式部署、批次執行命令等功能。 ansible是基於 paramiko 開發的,並且基於模組化工作,本身沒有批次部署的能力。真正具有批次部署的是ansible所執行的模組,ansible只是提供一種框架。ansible不需要在遠端主機上安裝client/agents,因為它們是基於ssh來和遠端主機通訊的。ansible目前已經已經被紅帽官方收購,是自動化運維工具中大家認可度最高的,並且上手容易,學習簡單。這是每位運維工程師必須掌握的技能之一。
雲計算塗鴉的合成影象
這裡以三臺centos7.6為例:
在其中一臺伺服器上安裝ansible:yum install ansible -y
2.配置其他伺服器的免密登入:
ssh-keygen
ssh-copy-id +其他伺服器IP地址
3.配置ansible主機組host檔案。
vi /etc/ansible/hosts
注:建立主機組的時候,可以選擇填ip地址,也可以填其他的比如主機名(但是必須在/etc/hosts檔案指定主機名與IP對應關係),下面圖中給出了三種建立主機組的方法。
/etc/hosts檔案
4.ansible統一管理主機組
檢查主機存活狀態ansible -m ping +主機組
檢視主機組中的主機詳細,比如檢視磁碟,cpu、記憶體等等。ansible yunweichongzi -m command -a "free -h"
ansible yunweichongzi -m command -a "df -H"
ansible其他模組yum模組:
ansible yunweichongzi -m yum -a "name=httpd state=installed"
啟動服務:
ansible yunweichongzi -m service -a "name=httpd state=started enabled=yes"
同理關閉是修改state=stopped
-
3 # 奈何不明卿
做運維和程式一樣 關鍵是思路 有思路用shell一樣自動化 雖然最近在轉用ansible和docker 僅僅是為了用而用 不想被淘汰跟上時代 不然面試被鄙視
-
4 # 牙牙的生活日誌
現在最流行什麼?當然是docker容器啊。那麼怎麼管理和編排呢?當然是k8s啊。
如果伺服器超過三臺的話,建議把所有伺服器高可用部署成一套k8s叢集,然後每個節點外掛一塊共享盤(nfs或者glusterfs),用來掛載給容器存檔資料,這樣由k8s統一管理,當容器當機,k8s會自動重新部署容器,並且由於共享盤的存在,無論我們的服務容器執行到哪個節點,都可以正常讀取資料。真正實現無干預 無感知的服務高可用。
簡單介紹下k8s的使用。
k8s統一由yaml或者json來描述任務,個人更喜歡yaml。直接透過kubectl命令列工具來管理k8s作業。
想要對外暴露容器內部服務,我用的比較多的是ingress+service的方式,k8s也提供loadblance等。可自行研究。
對於docker映象,我們統一由harbor進行管理,保證了我們製作的最新的映象,在任何節點都可以拉取。
-
5 # 低烈度程式設計師
這個問題其實分為幾個層次來解答:
1. 基礎設施資源管理
2. runtime以及中介軟體管理
3. 應用自動化管理
基礎設施資源管理主要分為計算[cpu,mem],儲存,網路等。那麼怎麼管理基礎設施資源呢?
1. 將底層硬體資源雲化整合成資源池,然後透過容器來做資源的切分給上層的中介軟體以及應用使用。資源的抽象整合可以使用的工具容器三大排程工具,swarm,k8s,mesos。當然隨著排程工具的發展,原生排程工具swarm,mesos都已經落寞了。谷歌主導的k8s新一代資料中心雲作業系統已經成為了事實標準。不過個人感覺如果公司較小沒有專業的k8s管理者,可以使用swarm簡單而且易用。
對於中介軟體以及runtime的自動化管理, 這其實是個paas的概念。那麼小公司如何去實踐使用呢?
1. 如果使用swarm作為排程工具的話,可以使用docker compose編排檔案去定義中介軟體的部署yaml檔案。比如:redis-ha叢集。
2. 如果使用k8s作為平臺排程工具,建議使用helm應用包管理器,進行打包和釋出應用。helm每次釋出會依據charts模板生成一個release,應用可以根據release回退到特定的版本。管理十分方便。我一般都是透過這種方式管理mq,redis等叢集。
應用的自動化管理,對於應用管理來說,其實繞不開這幾個話題,釋出部署,高可用,負載均衡,彈性伸縮,監控告警,日誌收集。那麼可以拆開來說:
2. 高可用和負載均衡的方案其實可以透過k8s自身帶有的功能去實現。這裡面其實也涉及到了應用的health check的問題。
3. 彈性伸縮的問題其實分為兩個問題,基礎設施的彈性伸縮已經應用的彈性伸縮。基礎設施的彈性伸縮這個只能依靠自己寫程式去幹,比如pxe等。應用彈性伸縮,可用k8s的hpa方式去做,對於彈性伸縮策略,可以cpu和mem。也可以基於其他方案策略,不做細說。
4. 監控可以採用prometheus -operator全家桶,爽的不要不要的。
5. 日誌收集建議採用efk方案。
筆者是以為從事多年雲計算的老司機,喜歡和大家一起分享雲計算的技術和解決方案。
-
6 # 徐三刀gg
你可以瞭解下wgcloud,開源運維監控系統,具有輕量級高效能等優點,易安裝易上手,伺服器各種指標都支援,主要是它支援自動化監控運維,不到一個小時就可以安裝跑起來了
回覆列表
必須ansible,因為你docker安裝之前做不了批次部署,k8s未配置前,也做不了批次部署,唯一能做到的目前只有ansible