亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

發布時間:2021-09-26 17:06:06 來源:億速云 閱讀:135 作者:柒染 欄目:系統運維

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

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


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


(三)遠程執行
(3.1)所謂遠程執行就是指我們可以在master上定義一個操作,然后便可以自動在對應的minion節點上執行相關的命令,這樣就不需要我們一個一個的登錄節點去執行。
格式:salt ‘*’ 模塊.命令
# salt ‘*’ test.ping---在所有的機器上執行(圖2-24)
# salt vms12.rhce.cc test.ping---在單臺機器上執行(圖2-24)
# salt ‘*’ cmd.run ‘ls’---在所有機器上執行
# salt vms12.rhce.cc cmd.run ‘ls’---在單臺機器上執行(圖2-25)
# salt 'vms13.rhce.cc' cmd.run 'hostname'---查詢vms13主機的主機名(圖2-25)
# salt '*' cmd.run 'ifconfig ens32'---查詢所有主機的網絡信息(圖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為后綴名的配置文件,例如創建了一個aa.sls的配置文件,那么這個名字就是后面要執行的名字。Sls這種文件并非是可以在任何目錄里寫的,必須得在指定的目錄里寫,我們進入到/etc/salt目錄下可以看到一個master文件,我們在master文件中找到“file_roots”這一行信息,然后可以定義一個目錄/srv/salt,此時我們sls文件必須要往/srv/salt目錄或者子目錄中寫才會生效
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(4.2)接著我們還需要在master上創建/srv/salt目錄,并將salt-master服務重啟一下,然后再進入到/srv/salt目錄中創建一個aa.sls的文件,在sls文件中我們需要定義名稱、模塊名、命令名、以及需要安裝的軟件包名(圖4-3),然后讓這個YAML文件指定對應的minion自己去按照系統的特性進行安裝(圖4-4)
# mkdir /srv/salt
# systemctl restart salt-master.service
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(4.3)然后我們在vms11主機上將aa.sls配置文件的內容運行起來(圖4-5),此時可以發現vms13主機上的httpd的相關服務已經正確的安裝起來了(圖4-6)
# salt '*' state.sls aa
# rpm -qa | grep httpd
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(4.4)這個aa.sls文件,我們并沒有指定在哪個機器上執行,如果安裝很多臺機器,安裝不同的包,我們需要很多個不同的sls文件。此時我們應該使用top.sls文件來進行處理,top.sls的目的就是為了每臺minion設置好要執行哪個sls文件。我們首先在minion主機上將httpd和vsftpd服務停止下來,接著將httpd和vsftpd安裝的內容卸載掉(圖4-8)。然后在vms11主機上/srv/salt目錄中創建一個top.sls的文件,并且創建一個xx目錄,在xx目錄中創建一個bb.sls的文件,我們可以使用tree命令查看到當前目錄下的目錄樹的狀態(圖4-9)。我們在bb.sls文件中安裝并設置vsftpd服務的相關配置,現在我們的需求是在vms12主機上安裝httpd服務,在vms13主機上安裝vsftpd服務,可以在top.sls文件中進行設置(圖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主機上直接執行安裝命令即可,此時我們發現在vms12主機上已經安裝完成了httpd服務,沒有安裝vsftpd服務,而vms13主機已經安裝了完成了vsftpd服務,沒有安裝httpd服務。
# salt '*' state.highstate
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


(五)模塊管理
(5.1)我們想要知道系統中具體有多少個模塊可以執行,此時可以通過sys.list_modules來查看(圖5-1),例如我們前面有使用的“test.ping”、“cmd.run”、“pkg.installed”、“service.running”。如果我們想要了解某個模塊的所有的命令,我們可以通過連續兩次Tab鍵,就可以得到pkg模塊中所有的命令(圖5-2)
# salt 'vms12.rhce.cc' sys.list_modules
# salt 'vms12.rhce.cc' pkg.
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(5.2)當然我們也可以通過sys.list_functions的方式得到命令的相關模塊的信息(圖5-3),如果我們想查看模塊子命令的相關用法,則可以使用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的主要作用是能夠獲取系統中所能用到的所有的信息,這些信息主要是以變量的方式進行存儲。如果我們可以先查看一下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),我們獲取這些變量的目的是,可以在寫腳本的時候能夠通過獲取系統系統的信息,從而進行相關的判斷,在不同的機器上執行不同的東西,比如在redhat上執行一種操作,而在debian上執行另外一種操作(圖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主要是進行一些系統操作命令的函數,當我們查詢pillar.items的時候是獲取不到相關的數值的,因為默認情況下pillar的相關模塊是沒有開啟的。
# salt 'vms12.rhce.cc' sys.list_functions pillar
# salt 'vms12.rhce.cc' pillar.items
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
(7.2)如果需要把pillar相關的模塊開啟,那么需要進入到/etc/salt/目錄下,編輯master文件,將pillar_opts的值修改為True即可,同時還要開啟pillar_roots的路徑信息,并在系統中創建對應的/srv/pillar目錄,最后將salt-master服務重啟一下,此時我們便可以得到pillar.items的相關信息了(圖7-7)。
# mkdir /srv/pillar
# systemctl restart salt-master.service
# salt '*' pillar.items
# salt 'vms12.rhce.cc' sys.doc pillar---我們通過這個命令可以獲取到相關的幫助信息
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用
Linux中什么是自動化以及運維利器SaltStack的安裝使用


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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高唐县| 马关县| 天镇县| 宁都县| 赣榆县| 秀山| 陆川县| 车致| 周宁县| 南陵县| 云南省| 正宁县| 洪洞县| 文登市| 海口市| 城固县| 东城区| 滨州市| 富阳市| 淮滨县| 黑水县| 汶川县| 高雄县| 志丹县| 赣榆县| 奎屯市| 托克逊县| 波密县| 海南省| 岱山县| 苍山县| 山西省| 高唐县| 五大连池市| 大丰市| 玉屏| 黄石市| 米脂县| 镇江市| 惠来县| 精河县|