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上,處於很明顯的安全考慮,默認沒有啓用此功能,若是你須要的話能夠參考文檔。