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这部分后续再研究。