salt 文件服务器

salt 文件服务器的用法


salt文件服务器的配置,使用本地目录或git远程仓库作为文件搜索路径:
fileserver_backend:
- roots
- git

roots代表file_roots配置的环境
git代表gitfs_remotes配置的环境

如果fileserver_backend配置为一个列表的形式,那么搜索文件的时候将从上到下进行搜索,
同理file_roots和gitfs_remotes的配置也遵循从上到下的搜索原则。

示例:

1 file_roots:
2 base:
3 - /tmp
4 - /etc/salt/base/states
5 A:
6 - /etc/salt/A/states
7 B:
8 - /etc/salt/B/states
配置示例

salt 'IP' cp.get_file salt://examplefile /tmp/examplefile saltenv=A

salt 'IP' cp.get_file salt://examplefile?saltenv=A /tmp/examplefile

当不指定saltenv参数的时候,salt://搜索会逐级遍历file_roots,指定了就在指定的环境中
搜索。



cp模块的用法:

拷贝特殊文件名处理方法使用salt://|
示例:
/etc/marathon/conf/?checkpoint:
file.managed:
- source: salt://|hw/config/?checkpoint
- makedirs: True

GET_FILE
cp.get_file功能可以用于minion从master下载一个文件:
# salt '*' cp.get_file salt://vimrc /etc/vimrc

同样可以使用模板功能
# salt '*' cp.get_file "salt://{{grains.os}}/vimrc" /etc/vimrc template=jinja

使用gzip压缩传输
# salt '*' cp.get_file salt://vimrc /etc/vimrc gzip=5

指定补充创建缺少的目录结构
# salt '*' cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True

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

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


关于salt命令行salt-cp的使用方法

1 salt-cp '*' [ options ] SOURCE DEST
2 
3 salt-cp -E '.*' [ options ] SOURCE DEST
4 
5 salt-cp -G 'os:Arch.*' [ options ] SOURCE DEST
配置

salt 复制一个本地文件的拷贝到所有匹配的Salt Minion中给定的目标。

使用方法参考链接:
http://docs.saltstack.cn/ref/cli/salt-cp.html



比较salt文件服务器和salt-cp命令行,在临时传输一些小文件的时候譬如配置文件等,
比较简单快捷,如果是传输一些较大的文件,譬如软件包的时候,salt-cp就不那么好使了,
这是从实际使用得到的结论。


关于FILE SERVER CLIENT API这部分后续再研究。


原文地址:https://www.cnblogs.com/solitarywares/p/7435976.html