溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中什么是自動化以及運維利器SaltStack的安裝使用

發(fā)布時間:2021-09-26 17:06:06 來源:億速云 閱讀:133 作者:柒染 欄目:系統(tǒng)運維

今天就跟大家聊聊有關(guān)Linux中什么是自動化以及運維利器SaltStack的安裝使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

(一)自動化運維介紹
(1.1)當(dāng)我們在單臺機器上操作時,例如安裝一個系統(tǒng),然后安裝相關(guān)的軟件包,配置相關(guān)的服務(wù)等,由于機器的數(shù)量很少所以我們管理起來是非常簡單的。但是在日常工作中我們所管理的服務(wù)器有時候并不是單臺的機器,可能會是幾百上千臺的量,此時我們應(yīng)該怎樣簡單高效的管理我們的服務(wù)器呢,我們也許會使用常規(guī)的方式,遠程登錄到每臺服務(wù)器進行配置,但是這樣的方式會非常的繁雜且低效,這個時候我們應(yīng)該在我們已有的技能水平上去使用相對應(yīng)的自動化管理工具來協(xié)助我們管理我們的服務(wù)器,這樣以后我們在管理服務(wù)器集群的時候只需要在一個特定的終端上進行操作,那么所有的配置操作都會自動在所對應(yīng)的服務(wù)器上自動的執(zhí)行了,有了自動化運維工具的協(xié)助就可以大大提高運維工作的效率。其中我們常見的自動化運維的工具有:Ansible、SaltStack、Puppet
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(1.2)SaltStack是一個異構(gòu)平臺基礎(chǔ)設(shè)置管理工具,我們通常是在Linux上,使用輕量級的通訊器ZMQ,用Python攜程的批量管理工具,完全開源,遵守Apache2協(xié)議,與Puppet、Chef功能類似,有一個強大的遠程執(zhí)行命令引擎,也有一個強大的配置管理系統(tǒng),通常叫做Salt State System。Saltstack采用C/S模式,server端就是salt的master,client端就是minion,minion與master之間通過ZeroMQ消息隊列通信。
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(二)安裝saltstack
(2.1)一般我們會通過官方網(wǎng)站https://repo.saltstack.com/ 的方式去安裝SaltStack,不過操作系統(tǒng)通常會包含epel源,此時我們直接使用epel源去安裝SaltStack也是非常方便的。
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.2)現(xiàn)在我們的環(huán)境一共是有3臺機器,使用的系統(tǒng)都是CentOS 7.4,其中master的主機名是vms11.rhce.cc,IP地址為192.168.26.11;其中一臺minion的主機名是vms12.rhce.cc,IP地址為192.168.26.12;另一臺minion的主機名是vms13.rhce.cc,IP地址為192.168.26.13。
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.3)我們首先進入系統(tǒng)中將屏幕保護設(shè)置一下,然后編輯vms11主機的IP地址為192.168.26.11,并將網(wǎng)絡(luò)的子網(wǎng)掩碼、網(wǎng)關(guān)、DNS都設(shè)置一下,然后將系統(tǒng)的網(wǎng)絡(luò)network重啟即可。接著我們將vms12主機的IP地址設(shè)置為192.168.26.12,vms13主機設(shè)置為192.168.26.13,并配置好其他的設(shè)置。
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.4)同時我們還要將三臺主機的SELinux設(shè)置為Disabled,并重啟計算機后生效,并將防火墻設(shè)置為trusted,即允許所有的數(shù)據(jù)包通過,并設(shè)置好正確得主機名信息。同時在三臺主機的/etc/hosts文件中設(shè)置好所需的IP地址、長主機名、短主機名信息,以此替代本地域名解析的作用。
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.5)我們先將光盤的掛載信息配置好,然后在/etc/yum.repos.d/目錄中創(chuàng)建一個aa.repo的倉庫信息,接著我們開始安裝epel源(圖2-9)。
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.6)接著我們開始在vms11機器上安裝salt-master,在vms12和vms13機器上安裝salt-minion,同時在vms11主機上將salt-master服務(wù)開啟并設(shè)置開機自動啟動。
# systemctl list-unit-files | grep salt
# systemctl start salt-master
# systemctl enable salt-master
# yum install salt-minion -y
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.7)接著我們需要在客戶端配置可以接收哪臺服務(wù)器的管理,所以我們首先在vms12主機上操作,進入/etc/salt目錄,并編輯minion文件中的master的值為vms11,同時我們將vms12的minion文件拷貝到vms13主機上。
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.8)接著我們在兩臺minion主機vms12和vms13上將salt-minion主機服務(wù)啟動起來并設(shè)置開機自動啟動。此時當(dāng)我們在minion主機上重啟salt-minion服務(wù)的時候,minion主機就會主動向master去注冊。
# systemctl list-unit-files | grep salt
# systemctl start salt-minion.service
# systemctl enable salt-minion.service
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.9)但是master主機在接收到請求后也是處于不知可否的狀態(tài),我們通過如下salt-key命令就可以查看到vms11主機上已經(jīng)有了vms12和vms13兩臺主機請求信息,同時在/etc/salt/pki/master/minions_pre/目錄下也是可以看到vms11主機接收到的vms12和vms13主機的pki密鑰信息(圖2-18)。同時我們在minion主機上也是可以看到相關(guān)的密鑰信息的,例如在vms12主機上,我們在/etc/salt/pki/minion/目錄下便可以看到已經(jīng)產(chǎn)生了兩個密鑰文件minion.pem和minion.pub,并且會將證書文件發(fā)送給master(圖2-19)
# salt-key -L
# ls /etc/salt/pki/master/minions_pre/
# ls /etc/salt/pki/minion/
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(2.10)如果我們想放行某個節(jié)點,則可以使用指定節(jié)點的方式,這樣master節(jié)點就可以管理放行過來的minion節(jié)點了(圖2-20)。如果我們想放行所有來申請的節(jié)點,那么可以直接使用“-A”參數(shù)即可(圖2-21)。如果我們想刪除不需要的節(jié)點,則可以使用“-d”參數(shù)(圖2-22),如果想一次性刪除所有的節(jié)點則可以通過“-D”參數(shù)。當(dāng)我們在minion節(jié)點重啟服務(wù)后,節(jié)點的加入master的請求便會再次生效了(圖2-23),這樣我們便可以通過master主機對節(jié)點進行日常的管理操作了。
# salt-key -a vms12.rhce.cc---允許指定的單個節(jié)點通過
# salt-key -A---允許所有的節(jié)點都通過
# salt-key -d vms12.rhce.cc---刪除指定單個的節(jié)點
# salt-key -D---統(tǒng)一將所有的節(jié)點都刪除
# systemctl restart salt-minion.service---在minion節(jié)點將服務(wù)重啟一下
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(三)遠程執(zhí)行
(3.1)所謂遠程執(zhí)行就是指我們可以在master上定義一個操作,然后便可以自動在對應(yīng)的minion節(jié)點上執(zhí)行相關(guān)的命令,這樣就不需要我們一個一個的登錄節(jié)點去執(zhí)行。
格式:salt ‘*’ 模塊.命令
# salt ‘*’ test.ping---在所有的機器上執(zhí)行(圖2-24)
# salt vms12.rhce.cc test.ping---在單臺機器上執(zhí)行(圖2-24)
# salt ‘*’ cmd.run ‘ls’---在所有機器上執(zhí)行
# salt vms12.rhce.cc cmd.run ‘ls’---在單臺機器上執(zhí)行(圖2-25)
# salt 'vms13.rhce.cc' cmd.run 'hostname'---查詢vms13主機的主機名(圖2-25)
# salt '*' cmd.run 'ifconfig ens32'---查詢所有主機的網(wǎng)絡(luò)信息(圖2-26)
# salt '*' cmd.run 'yum install vsftpd -y ; systemctl start vsftpd ; systemctl enable vsftpd'---所有機器上安裝軟件包(圖2-27和圖2-28)
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(四)配置管理
(4.1)我們也可以通過配置管理來進行軟件包的安裝,此時通過配置管理安裝時我們需要寫一個以sls為后綴名的配置文件,例如創(chuàng)建了一個aa.sls的配置文件,那么這個名字就是后面要執(zhí)行的名字。Sls這種文件并非是可以在任何目錄里寫的,必須得在指定的目錄里寫,我們進入到/etc/salt目錄下可以看到一個master文件,我們在master文件中找到“file_roots”這一行信息,然后可以定義一個目錄/srv/salt,此時我們sls文件必須要往/srv/salt目錄或者子目錄中寫才會生效
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(4.2)接著我們還需要在master上創(chuàng)建/srv/salt目錄,并將salt-master服務(wù)重啟一下,然后再進入到/srv/salt目錄中創(chuàng)建一個aa.sls的文件,在sls文件中我們需要定義名稱、模塊名、命令名、以及需要安裝的軟件包名(圖4-3),然后讓這個YAML文件指定對應(yīng)的minion自己去按照系統(tǒng)的特性進行安裝(圖4-4)
# mkdir /srv/salt
# systemctl restart salt-master.service
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(4.3)然后我們在vms11主機上將aa.sls配置文件的內(nèi)容運行起來(圖4-5),此時可以發(fā)現(xiàn)vms13主機上的httpd的相關(guān)服務(wù)已經(jīng)正確的安裝起來了(圖4-6)
# salt '*' state.sls aa
# rpm -qa | grep httpd
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(4.4)這個aa.sls文件,我們并沒有指定在哪個機器上執(zhí)行,如果安裝很多臺機器,安裝不同的包,我們需要很多個不同的sls文件。此時我們應(yīng)該使用top.sls文件來進行處理,top.sls的目的就是為了每臺minion設(shè)置好要執(zhí)行哪個sls文件。我們首先在minion主機上將httpd和vsftpd服務(wù)停止下來,接著將httpd和vsftpd安裝的內(nèi)容卸載掉(圖4-8)。然后在vms11主機上/srv/salt目錄中創(chuàng)建一個top.sls的文件,并且創(chuàng)建一個xx目錄,在xx目錄中創(chuàng)建一個bb.sls的文件,我們可以使用tree命令查看到當(dāng)前目錄下的目錄樹的狀態(tài)(圖4-9)。我們在bb.sls文件中安裝并設(shè)置vsftpd服務(wù)的相關(guān)配置,現(xiàn)在我們的需求是在vms12主機上安裝httpd服務(wù),在vms13主機上安裝vsftpd服務(wù),可以在top.sls文件中進行設(shè)置(圖4-10和圖4-11)。
# rpm -qa httpd
# systemctl stop httpd vsftpd.service
# rpm -e httpd vsftpd httpd-devel
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(4.5)接著我們開始在master主機上直接執(zhí)行安裝命令即可,此時我們發(fā)現(xiàn)在vms12主機上已經(jīng)安裝完成了httpd服務(wù),沒有安裝vsftpd服務(wù),而vms13主機已經(jīng)安裝了完成了vsftpd服務(wù),沒有安裝httpd服務(wù)。
# salt '*' state.highstate
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(五)模塊管理
(5.1)我們想要知道系統(tǒng)中具體有多少個模塊可以執(zhí)行,此時可以通過sys.list_modules來查看(圖5-1),例如我們前面有使用的“test.ping”、“cmd.run”、“pkg.installed”、“service.running”。如果我們想要了解某個模塊的所有的命令,我們可以通過連續(xù)兩次Tab鍵,就可以得到pkg模塊中所有的命令(圖5-2)
# salt 'vms12.rhce.cc' sys.list_modules
# salt 'vms12.rhce.cc' pkg.
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(5.2)當(dāng)然我們也可以通過sys.list_functions的方式得到命令的相關(guān)模塊的信息(圖5-3),如果我們想查看模塊子命令的相關(guān)用法,則可以使用sys.doc得到模塊的使用信息(圖5-4)
# salt 'vms12.rhce.cc' sys.list_functions pkg
# salt 'vms12.rhce.cc' sys.doc pkg
# salt 'vms12.rhce.cc' sys.list_functions service
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(六)grains模塊
(6.1)grains的主要作用是能夠獲取系統(tǒng)中所能用到的所有的信息,這些信息主要是以變量的方式進行存儲。如果我們可以先查看一下grains中的子命令的情況
# salt 'vms12.rhce.cc' sys.list_functions grains
# salt 'vms12.rhce.cc' grains.items---獲取所有能用到的變量及值(圖6-2至圖6-4)
# salt 'vms12.rhce.cc' grains.ls---獲取所有能用到的變量,不包括值(圖6-5)
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(6.2)如果我們想單獨的獲取某個變量的值,則可以使用grains.get命令(圖6-6),我們獲取這些變量的目的是,可以在寫腳本的時候能夠通過獲取系統(tǒng)系統(tǒng)的信息,從而進行相關(guān)的判斷,在不同的機器上執(zhí)行不同的東西,比如在redhat上執(zhí)行一種操作,而在debian上執(zhí)行另外一種操作(圖6-7)。具體的語法信息我們可以參閱官方文檔https://docs.saltstack.com/en/latest/contents.html
# salt 'vms12.rhce.cc' grains.get os---單獨獲取某個變量的值
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(七)pillar模塊
(7.1)pillar主要是進行一些系統(tǒng)操作命令的函數(shù),當(dāng)我們查詢pillar.items的時候是獲取不到相關(guān)的數(shù)值的,因為默認情況下pillar的相關(guān)模塊是沒有開啟的。
# salt 'vms12.rhce.cc' sys.list_functions pillar
# salt 'vms12.rhce.cc' pillar.items
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(7.2)如果需要把pillar相關(guān)的模塊開啟,那么需要進入到/etc/salt/目錄下,編輯master文件,將pillar_opts的值修改為True即可,同時還要開啟pillar_roots的路徑信息,并在系統(tǒng)中創(chuàng)建對應(yīng)的/srv/pillar目錄,最后將salt-master服務(wù)重啟一下,此時我們便可以得到pillar.items的相關(guān)信息了(圖7-7)。
# mkdir /srv/pillar
# systemctl restart salt-master.service
# salt '*' pillar.items
# salt 'vms12.rhce.cc' sys.doc pillar---我們通過這個命令可以獲取到相關(guān)的幫助信息
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(八)salt-ssh
(8.1)我們在前面由master連接到minion進行管理的時候并沒有讓我們輸入任何的密碼信息,就可以直接的遠程連接過去,其實這是由于master和minion直接通過證書進行通信的,在vms12主機上我們發(fā)現(xiàn)/etc/salt/pki目錄下是有兩個證書文件pem和pub的,在vms11主機上我們也可以發(fā)現(xiàn)在/etc/salt/pki目錄下也是有兩個證書文件master.pem和master.pub的。
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(8.2)如果現(xiàn)在我們不想通過證書方式來進行master和minion之間的通信連接,而希望通過ssh的方式來建立連接,此時我們就應(yīng)該使用salt-ssh的方式來滿足這個需求,我們重新生成三臺主機vms11、vms12、vms13,然后安裝相關(guān)的軟件包,我們先將epel源安裝起來。
環(huán)境搭建、環(huán)境配置步驟:①首先進入到/etc/sysconfig/network-scripts/目錄下配置IP地址、網(wǎng)關(guān)、子網(wǎng)掩碼、DNS等信息;②將/etc/cdrom鏡像掛載到/mnt目錄下;③在/etc/fstab文件中配置開機自動掛載光盤鏡像的設(shè)置;④進入到/etc/yum.repos.d/目錄中創(chuàng)建aa.repo的倉庫文件;⑤進入到/etc/hosts文件中編輯IP地址、長主機名、短主機名等信息;⑥將主機的屏保功能去除。
# yum install epel* -y
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(8.3)在epel源安裝完成后,接著我們安裝salt-ssh,并編輯/etc/salt/目錄下的roster文件,在配置文件中我們在master主機上編輯連接到vms12和vms13兩臺主機的IP地址、用戶名、密碼、端口等信息。
# yum install salt-ssh -y
# vim /etc/salt/roster
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(8.4)當(dāng)我們使用ssh進行登陸的時候,系統(tǒng)總是會詢問我們yes/no的登錄信息,這個是由于在root/.ssh/目錄下的known_hosts文件中保存了相關(guān)的登錄信息。此時我們可以進入到/etc/ssh/ssh_config配置文件中將StrictHostKeyChecking的值修改為no并保存,此時我們在vms11主機上測試連接minion的連通性發(fā)現(xiàn)是可以正常的連接的。
# salt-ssh '*' test.ping
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(8.5)此時我們也是可以在master主機上執(zhí)行相關(guān)的命令的,例如使用salt-ssh我們可以遠程執(zhí)行獲取主機名的操作,其中“-r”參數(shù)后可以跟系統(tǒng)命令;“-i”參數(shù)表示如果詢問密碼,直接幫你確認。當(dāng)然我們知道saltstack使用ssh的方式會比使用證書的連接管理方式的性能會低一些,不過安全性會相應(yīng)的得到提高。
# salt-ssh '*' -r 'hostname'
# salt-ssh '*' -r 'df -hT'
Linux中什么是自動化以及運維利器SaltStack的安裝使用

看完上述內(nèi)容,你們對Linux中什么是自動化以及運維利器SaltStack的安裝使用有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI