介紹兩款自動化運(yùn)維工具

如果服務(wù)器的數(shù)量小的話,我們可以直接通過ssh連接上去,執(zhí)行命令即可.也可以直接寫一個腳本,通過ssh自動執(zhí)行命令,將服務(wù)器修改成我們想要的狀態(tài).

然而,當(dāng)我們有不只一臺服務(wù)器時,就不能這么做了.當(dāng)然,你要想這么做,也沒人攔你,只是麻不麻煩的問題.

現(xiàn)在有這么一個場景,我們想要搭建一個kubernetes的微型集群,我們先設(shè)置好了一個master節(jié)點(diǎn),然后讓其他的node都自動加入master.而這些node上,需要配置的都差不多.

如果不使用這些自動化的運(yùn)維工具,我們就需要開啟多個terminal,在其中一遍遍的輸入命令,然后驗(yàn)證結(jié)果.這種方式不僅麻煩,還容易出錯.

But the tools save us!!!

這里我簡單的介紹我用過的兩款自動化運(yùn)維工具.

第一款是Chef,在我之前的文章中,也介紹過它.看過我那些文章的朋友,應(yīng)該都能感覺到其復(fù)雜性,以及功能的強(qiáng)大性.Chef中有三種節(jié)點(diǎn),一種是我們的Workstation,一種是Chef Server,還有一種是Chef Client.我們需要在Workstation上面,編寫一些代碼,用這些代碼來描述我們預(yù)期的服務(wù)器的狀態(tài),然后上傳到Chef Server上,然后Chef Client檢測之后,再在服務(wù)器上執(zhí)行對應(yīng)的操作,讓服務(wù)器變成你預(yù)期的狀態(tài).每個服務(wù)器上,都需要安裝一個Chef Client.

從上面的描述中,我們可以看到,Chef不是基于SSH的,它是服務(wù)器-客戶端模式實(shí)現(xiàn)的.所以,我們要想使用的話,就得搭建一個Chef服務(wù)器(也可以用Chef官網(wǎng)免費(fèi)提供的),還需要在每一臺服務(wù)器上,都安裝一個Chef Client.

Chef的Cookbook,寫起來也不輕松.其中用到了大量的Ruby語法,如果你懂Ruby還好,不懂的話,很容易蒙圈.反正我是不懂.有點(diǎn)頭大.

雖然Chef有諸多不便,但是,它有一個最大的好處,就是有很多cookbook,在Chef Market中,別人已經(jīng)寫好了,我們只需要用就好了.所以,搭建一個Kubernetes集群,我們實(shí)際上需要做的,可能很少.只需要下載下來這些Cookbook,然后修改一下,再運(yùn)行就好.

另外,Chef還依賴于很多其他的東西.由于很久不用了,我也有點(diǎn)記不清楚具體是依賴于啥了.

第二款是Ansible,也是我現(xiàn)在在搭建這個微型的Kubernetes集群時,使用的一款工具.當(dāng)初想到要進(jìn)行自動化的時候,我就有點(diǎn)頭大.因?yàn)橹坝肅hef的時候,感覺其用起來特別麻煩.后來突然想起來還有Ansible這款工具.之前看別人寫的blog時,看到有人用這款工具,感覺用起來特別簡單.于是就嘗試了一下,果然是特別簡單,輕松的.

Ansible是使用SSH對服務(wù)器進(jìn)行操作的.也就是說,它只需要一個Workstation就行了,而不需要Chef中的Chef Server和Chef Client.而且它的Playbook是基于yml語法的,寫起來特別簡單.

它還可以給服務(wù)器分組,我們可以只給特定組中的服務(wù)器執(zhí)行Playbook,這就讓我們能夠同時對服務(wù)器進(jìn)行不同的操作.

Ansible內(nèi)部支持的模塊也挺多,能夠滿足基本的需求.

但是,它沒有像Chef那樣的Market,所以,我們只有自己重復(fù)造輪子了.

使用的時候,具體有什么區(qū)別,那就請各位自行嘗試了.

總之,我覺得,如果Ansible能夠滿足你的需求,就使用Ansible吧.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容