SaltStack安裝,添加主機,基本命令
為什麽選擇SaltStack:
可管理主機種類多樣化,如Windows,Linux
使用Python開發,對於了解Python用戶進行二次開發簡單
部署方便(相對於Ansible復雜,但客戶端安裝部署相對非常簡單了)
擴展性強
並處理能力強
強大的模塊功能,具有很多已有模塊可以處理日常自動化運維與復雜自動化運維
官文文檔,以及社區文檔豐富
強大的API功能
前言:
自動化運維的前提首先是標準化,如果對服務器部署,系統應用部署,系統管理沒有一定的標準來支撐那麽不管使用任何的自動化運維工具都是無法實現你想要的結果,所以我們要實現自動化運維的首要事情就是實現標準化管理。關於何為標準化,比如:計算機名命名,IP地址分類,MySQL部署標準,Nginx部署標準,系統登錄標準,系統初始化標準等
雖然SaltStack有眾多的好處,各位在對自動化運維工具的選擇上面還是要三思而後行,比如,如果你只有少量的機器,那麽不推薦使用SaltStack進行管理,反而使用Ansible更方便。另外如果有上百的服務器,並且了解Pyhton的使用,需要管理的機器種類繁多,那麽我推薦你使用SaltStack。接下來講解一下SaltStack服務端與客戶端的安裝
以下安裝全根據官方文檔復制,並經過在CentOS7系統測試OK,地址如下:
https://repo.saltstack.com/#rhel
服務端安裝(master):
rpm -e --nodeps python2-pycryptodomex yum install python-crypto yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum clean expire-cache yum install salt-master systemctl start salt-master
客戶端(minion)安裝:
rpm -e --nodeps python2-pycryptodomex yum install python-crypto yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum clean expire-cache yum install salt-minion
將客戶端添加至服務端:
修改客戶端配置文件:/etc/salt/minion_id
打開master: salt此行的註釋,並於salt修改為服務端的IP地址,或者可訪問的域名或FQDN名,如
master: salt.ops.aek.com
修改/etc/salt/minion_id
此文件的內容就是註冊到服務端,服務端所看到的客戶端ID,服務端通過此ID對當前客戶端進行管理,如:
yuyan.test.aek.com
啟動客戶端服務
systemctl start salt-minion
服務端查看並同意
salt-key #或 salt-key -L
執行以上命令會出現四個分組,如下圖所示
Accepted Keys: #已經建立連接的客戶端 Denied Keys: Unaccepted Keys: #發送請求過來,但未同意的客戶端 yuyan.test.aek.com #客戶端ID Rejected Keys:
服務端接受請求
salt-key -a yuyan.test.aek.com -y #以上命令執行成功後yuyan.test.aek.com就會被移動到Accepted Keys:下面
說明:第二部的操作可以不做,默認如果計算機名為系統默認localhost的話,那麽會以IP為ID發送給服務端,如果改過計算機名的話,那麽會以當前計算機名為ID發送到服務端,如果不想改動本地計算機名,但不想以此計算機為ID的話就修改/etc/salt/minion_id
基本命令用法(在服務端執行):
格式:salt host function arguments
salt yuyan.test.aek.com test.ping salt yuyan* cmd.run hostname salt -E "^yuyan.*$" cmd.run w
說明:
salt:主命令,一般用於向客戶端發起任務
host:接收命令的主機,這裏可以使用主機ID,ID可以使用通配符,正則表達式,以及更高及的一些用法,更高級的用法將在後面博文中詳細介紹
function:這裏為函數,這裏的函數我們可以理解為一個Python模塊,模塊就有方法,使用點分隔,如cmd.run,更多的模塊,與模塊方法的使用將在後面博文中詳細介紹
arguments:這裏為方法的參數,有的模塊方法可以沒有參數,如test.ping,那麽這個參數就可有可無,但cmd.run,這裏執行shell命令,那麽參數就為要執行的命令
示例:批量所有主機安裝軟件包
salt "*" pkg.install nginx
以上示例我們都在命令行中執行,但有時候命令行執行無法滿足我們的需求,這時候我們需要編輯寫SaltStack配置文件來完成我們的應用部署等其它工作,如源碼部署MySQL,JDK等,此文件就暫時講解這麽多,讓大家對SaltStack有個大概的了解,後續的博文件中再介紹它的一些常用模塊,配置文件編輯,如何自動化部署常見應用等
本文出自 “藍色_風暴” 博客,請務必保留此出處http://270142877.blog.51cto.com/12869137/1947847
SaltStack安裝,添加主機,基本命令