1. 程式人生 > >SaltStack配置管理

SaltStack配置管理

結構 運行 根據 log 開始 關閉 true 標記 路徑

  上一篇:SaltStack遠程執行

  配置管理使用YAML標記語言

  YAML

  YAML是“YAML不是一種記語言”的外語縮寫 [1] (見前方參考資料原文內容);但為了強調這種語言以數據做為中心,而不是以置標語言為重點,而用返璞詞重新命名。它是一種直觀的能夠被電腦識別的數據序列化格式,是一個可讀性高並且容易被人類閱讀,容易和腳本語言交互,用來表達資料序列的編程語言。

  格式

  數據結構可以用類似大綱的縮排方式呈現,結構通過縮進來表示,連續的項目通過減號“-”來表示,map結構裏面的key/value對用冒號“:”來分隔。樣例如下:

house:
  family:
    name: Doe
    parents:
      - John
      - Jane
    children:
      - Paul
      - Mark
      - Simone
  address:
    number: 34
    street: Main Street
    city: Nowheretown
    zipcode: 12345

  

  註意:
  1. 字串不一定要用雙引號標識;
  2. 在縮排中空白字符的數目並不是非常重要,只要相同階層的元素左側對齊就可以了(不過不能使用TAB字符);
  3. 允許在文件中加入選擇性的空行,以增加可讀性;
  4. 在一個檔案中,可同時包含多個文件,並用“——”分隔;
  5. 選擇性的符號“...”可以用來表示檔案結尾(在利用串流的通訊中,這非常有用,可以在不關閉串流的情況下,發送結束訊號)。

  三個規則

  縮進:默認兩個空格,不能使用Tab鍵

  冒號:冒號後面必須有一個空格,類似於Python的key和value

     有兩種寫法

my_key: my_value

my_key: 
  my_value

  短橫線:後面有一個空格,表示列表,列出多個(比如需要安裝多個軟件包)

  寫一個配置

  修改master配置文件/etc/salt/master定義路徑(實際生產有測試,開發,生產等目錄)

技術分享圖片

  新建這幾個文件夾

mkdir -p /srv/salt/{base,dev,test,prod}

技術分享圖片

  重啟master

systemctl restart salt-master

  PS:file_roots下面base文件夾是必備的

  進入文件夾cd /srv/salt/base/寫配置文件,為了區分不同的軟件可以在此處新建一個web文件夾

mkdir web
cd web/

技術分享圖片

  寫一個安裝apache的狀態(後綴必須是sls結尾)/srv/salt/base/web/apache.sls

apache-install:
  pkg.installed:
    - name: httpd
    
apache-service:
  service.running:
    - name: httpd
    - enable: True

  apache-install和apache-service是key也可以叫ID唯一標識符,不能重復

  pkg是一個狀態模塊使用裏面的方法installed安裝包

  sevice是一個狀態模塊使用裏面的running運行方法

  name是安裝的包名稱或者管理的服務的名稱

  enable是設置開機自動啟動

  PS:salt從上往下讀取執行,讀取到安裝包的命令不同的操作系統使用的命令不同,CentOS使用yum安裝,ubuntu使用apt-get安裝。(這裏是一個虛擬的配置文件salt會根據不同的系統執行的命令不同)

  

  執行前先看

  master定義的路徑是

技術分享圖片

  配置文件的路徑是

技術分享圖片

  執行

salt ‘linux-node2.example.com‘ state.sls web.apache

技術分享圖片

  往linux-node2.example.com主機執行,state是模塊,sls是執行方法默認執行是從base目錄下面執行,只需要寫執行的配置文件名,不需要加後綴sls

  PS:加入需要執行master設置的其他目錄下面的模塊比如需要執行prod目錄下面的配置文件加參數,saltenv=prod就是從prod下面開始執行了

  

  可以看到node2上面已經啟動了httpd

技術分享圖片

  停止了httpd然後再次在master執行剛剛的命令

技術分享圖片

  所以saltstack除了配置管理也可以狀態管理

  

  

SaltStack配置管理