SaltStack中的文件服務器

SaltStack中的文件服務器html


cp模塊web

環境apache

get_filevim

get_dir安全

get_url服務器

get_templateide

pushurl

參考連接: 原文Salt File Server操作系統


在配置管理系統中,從中心服務器想客戶端推送文件是很基本的需求。SaltStack使用內建的ZeroMQ服務器作爲文件服務器。 文件服務器主要用來在state系統中推送文件到客戶端,也能夠用於其餘文件的傳輸。server


cp模塊

客戶端對文件服務器的操做都在cp模塊中。Salt State系統,Salt-cp都用到了cp模塊。


環境

由於文件服務器是爲Salt state系統服務,因此也支持環境的概念。master的配置文件中定義各環境的路徑,文件的路徑基於指定環境的根目錄(參見下面的例子)。


get_file

cp.get_file用來從master下載文件到客戶端,語法以下:


# salt '*' cp.get_file salt://vimrc /etc/vimrc

其中vimrc在master上的實際路徑要看環境中定義的根目錄,假設在master中有以下定義:


file_roots:

  base:

    - /srv/salt/

那麼vimrc的實際路徑就是/srv/salt/vimrc,這樣作的好處是,能夠知足state系統中環境的概念。


源路徑和目標路徑中均可以使用模板,以下:


# salt '*' cp.get_file "salt://`grains`.`os`/vimrc" /etc/vimrc template=jinja

這個例子中,將下載與客戶端操做系統名字相同的目錄下的文件。


對於大文件,cp.get_file支持gzip壓縮,在參數中指定gzip的壓縮級別,以下:


# salt '*' cp.get_file salt://vimrc /etc/vimrc gzip=5

其中,1表明做小壓縮,9表明最大壓縮。


cp.get_file默認不在客戶端上創建目錄,若是客戶端上沒有這個目錄了,文件拷貝將失敗,能夠指定makedirs=True來建立目錄:


# salt '*' cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True

在這個例子中,若是@@/etc/vim不存在,將會創建此目錄。


get_dir

cp.get_dir能夠從master下載整個目錄,語法以下:


# salt '*' cp.get_dir salt://etc/apache2 /etc

cp.get_dir也支持模板和壓縮:


# salt '*' cp.get_dir salt://etc/`pillar`.`webserver` /etc gzip=5 template=jinja

get_url

cp.get_url能夠從一個URL地址下載文件,URL能夠是msater上的路徑(salt://),也能夠是http網址。


# salt '*' cp.get_url salt://my/file /tmp/mine

# salt '*' cp.get_url http://www.slashdot.org /tmp/index.html

get_template?


cp.get_template能夠在文件下載以前用模板引擎處理。


# salt '*' cp.get_template salt://path/to/template /minion/dest

push

cp.push能夠從客戶端傳文件到master上,處於很明顯的安全考慮,默認沒有啓用此功能,若是你須要的話能夠參考文檔。

相關文章
相關標籤/搜索