SaltStack中的檔案伺服器
參考連結: 原文Salt File Server, 官網文件cp模組
在配置管理系統中,從中心伺服器想客戶端推送檔案是很基本的需求。SaltStack
使用內建的ZeroMQ
伺服器做為檔案伺服器。
檔案伺服器主要用來在state
系統中推送檔案到客戶端,也可以用於其他檔案的傳輸。
cp模組
客戶端對檔案伺服器的操作都在cp
模組中。Salt Stat
e系統,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
上,處於很明顯的安全考慮,預設沒有啟用此功能,如果你需要的話可以參考文件,很方便的開啟。
相關文章
- Widows中伺服器中cookie檔案的位置伺服器Cookie
- 將jar檔案放在伺服器中JAR伺服器
- SaltStack
- Saltstack系列4:Saltstack之Grains元件AI元件
- Saltstack系列5:Saltstack之pillar元件元件
- saltstack的架構架構
- Saltstack系列2:Saltstack遠端執行命令
- 檔案伺服器rsync伺服器
- 檔案伺服器caddy伺服器
- IIS搭建的http檔案伺服器HTTP伺服器
- Linux伺服器上傳檔案傳送檔案Linux伺服器
- 關於Java使用MinIO檔案伺服器操作檔案Java伺服器
- Nginx搭建檔案伺服器Nginx伺服器
- 檔案伺服器 — File Browser伺服器
- Laravel 中的配置檔案Laravel
- Docker的minio檔案伺服器部署【嘿】Docker伺服器
- saltstack使用介紹
- saltstack常用語法
- saltstack——安裝篇
- saltstack03的配置管理
- linux伺服器目錄檔案的命令操作Linux伺服器
- miniserve 簡單美觀的檔案伺服器伺服器
- nginx實現檔案伺服器Nginx伺服器
- 伺服器上下載檔案FTP伺服器FTP
- Linux伺服器---apache配置檔案Linux伺服器Apache
- 伺服器端uwsgi配置檔案伺服器
- C++中的檔案操作C++
- Linux中的檔案種類Linux
- Laravel 中的檔案上傳Laravel
- nodejs中的檔案系統NodeJS
- Python中的檔案讀寫Python
- linux 中根據檔案的大小進行檔案的查詢Linux
- 伺服器上傳檔案至linux伺服器伺服器Linux
- 使用scp將linux伺服器中的檔案傳到windows本地主機上Linux伺服器Windows
- saltStack自動化工具
- saltstack獲取IP地址
- Saltstack基本安裝部署
- springboot專案中yaml檔案Spring BootYAML
- vue + minio上傳檔案伺服器Vue伺服器