Saltstack入門

1、Salt概述

  • 一個配置管理系統,可以維護預約義狀態的遠程節點(好比,確保指定的報被安裝,指定的服務在運行)。html

  • 一個分佈式遠程執行系統,用來在遠程節點(能夠是單個節點,也能夠是任意規則挑選出來的節點)上執行命令和查詢數據。linux

2、簡單

既要考慮大規模部署,又要考慮小規模系統,提供適應多種場合的應用讓人沮喪,但Salt很是容易設置和維護,而不用考慮項目的大小。從數量可觀的本地網絡系統,到跨數據中心的互聯網部署,Salt設計爲在任意數量的server下均可工做。salt的拓撲使用簡單的server/client模式,需求的功能內建在一組daemon中。salt在幾乎不改動配置的狀況下就能夠工做,也能夠調整從而知足特定的需求。apache

3、並行執行

Salt的核心功能編程

  • 使命令發送到遠程系統是並行的而不是串行的vim

  • 使用安全加密的協議安全

  • 使用最小最快的網絡載荷服務器

  • 提供簡單的編程接口網絡

Salt一樣引入了更加細緻化的領域控制系統來遠程執行,使得系統成爲目標不止能夠經過主機名,還能夠經過系統屬性。架構

4、BUILDS ON PROVEN TECHNOLOGY

Salt運用大量的技術和技巧。網絡層使用卓越的`ZeroMQ`_ 網絡類庫構建,因此Salt的守護端包含了可行的和透明的AMQ代理。Salt使用公鑰和master守護端認證,而後使用更快的AES`_ 負載通訊加密; 身份認證和加密對salt是不可或缺的。Salt經過`msgpack`_創建通訊,使得速度更快而且網絡流量少。分佈式

5、PYTHON客戶端接口

爲了容許簡單的擴展,Salt執行程序能夠寫爲純Python模塊。數據從Salt執行過程當中收集到能夠發送回master服務端,或者發送到任何任意程序。Salt能夠從一個簡單的Python API調用,或者從命令行被調用,因此Salt能夠用來執行一次性命令,也能夠做爲一個更大的應用程序的一個組成部分。

6、快速,靈活,易擴展

結果是可以在1臺或多臺目標機器上快速執行命令的系統。Salt運行快速,安裝簡單,高度可定製;Salt用相同的遠程執行架構知足管理不一樣數量服務器的需求。Salt基礎設施能夠集成最好的遠程執行工具,加強了Salt的能力及用途,獲得功能豐富實用能夠適用於任何網絡的系統。

7、入門部署

7.1)關閉iptables,selinux等

7.2)安裝教程參考:https://docs.saltstack.cn/topics/installation/index.html#installation

7.3)安裝yum源:https://docs.saltstack.cn/topics/installation/rhel.html

7.3)安裝軟件,這裏是爲了效果,因此在master上也安裝了minion

master
yum install -y salt-master salt-minion
slave
yum install -y  salt-minion

7.4)加入開機自動啓動

chkconfig salt-master on
chkconfig salt-minion on

7.5)啓動服務

/etc/init.d/salt-master start
minion先不要着急啓動,配置文件須要修改,以下操做
/etc/init.d/salt-minion start

7.6)配置minion

vim /etc/salt/minion
master: 192.168.222.145        (16行)
#id:                                       (默認是空,能夠不配主機名,也能夠配主機名,也能夠配ip,可是必定要注意格式,後面要有個空格,配置的主機名必需要能Ping的通)

7.7)若是上述配置了主機名,那麼就要改主機名

7.8)此時能夠開啓minion了,而後配置認證,master與minion相互識別是須要認證的,在沒有認證以前,關係都是放在minions_pre下面的,認證以後放到minions下面

[root@master master]# salt-key -a 192.168*     也能夠用-A,贊成全部

在全部的minion端也存放着master的公鑰

7.9)到此,saltstack已經裝完了,測試

正常。

8、配置管理

8.1)[root@master ~]# vim /etc/salt/master

[root@master ~]# mkdir /srv/salt/

重啓一下master

8.2)建立要執行的操做,相似於yaml

[root@master salt]# pwd
/srv/salt
[root@master salt]# ls
apache.sls

apache-install:
  pkg.installed:
    - names:
      - httpd
      - httpd-devel

apache-service:
  service.running:
    - name: httpd
    - enable: True
    - reload: True
選定機器,選定操做,相似於ansible的inventer和playbook
[root@master salt]# salt '*' state.sls apache

8.3)高級狀態,,上述只是一個狀態,那麼若是一個機器對應着好多個狀態,那麼就須要個相似於map的入口文件,定義一個機器所綁定的狀態,通常文件名爲top.sls,能夠修更名,但不建議,這個文件必須即只能放在basic的環境下。

[root@master salt]# vim top.sls
base:
  '*':     //全部主機       
    - apache   //都要執行apache這個狀態
從入口文件去讀取
[root@master salt]# salt '*' state.highstate
相關文章
相關標籤/搜索