saltstack 文件服务器,SaltStack学习(五)SaltStack中的文件服务器

本文介绍了SaltStack中的文件管理系统,重点讲解了如何使用cp模块从中心服务器向客户端推送文件。通过cp.get_file、cp.get_dir、cp.get_url和cp.get_template等命令实现文件和目录的下载、URL获取、模板处理等功能。同时,文章提到了文件服务器基于ZeroMQ,并支持环境概念,以及如何处理大文件和创建目标目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在配置管理系统中,从中心服务器想客户端推送文件是很基本的需求。SaltStack使用内建的ZeroMQ服务器做为文件服务器。 文件服务器主要用来在state系统中推送文件到客户端,也可以用于其他文件的传输。

cp模块

客户端对文件服务器的操作都在cp模块中。Salt State系统,Salt-cp都用到了cp模块。

环境

因为文件服务器是为Salt state系统服务,所以也支持环境的概念。master的配置文件中定义各环境的路径,文件的路径基于指定环境的根目录(参见下面的例子)。

常见用法

get_file

cp.get_file用来从master下载文件到客户端,语法如下:

[root@localhost ~]# salt '*' cp.get_file salt://123.txt /etc/123.txt

salt_minion_002:

/etc/123.txt

salt_minion_001:

/etc/123.txt

其中123.txt在master上的实际路径要看环境中定义的根目录,假设在master中有如下定义:

file_roots:

base:

- /srv/salt/

那么123.txt的实际路径就是/srv/salt/123.txt,这样做的好处是,可以满足state系统中环境的概念。

源路径和目标路径中都可以使用模板,如下:

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

这个例子中,将下载与客户端操作系统名字相同的目录下的文件。

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来创建目录:

[root@localhost ~]# salt 'salt_minion_002' cp.get_file salt://123.txt /etc/test_dir/123.txt makedirs=True

salt_minion_002:

/etc/test_dir/123.txt

如果test_dir不存在则会创建

get_dir

cp.get_dir可以从master下载整个目录,语法如下:

[root@localhost ~]# salt '*' cp.get_dir salt://test001 /opt/

salt_minion_002:

- /opt//test001/123.txt

- /opt//test001/456.txt

salt_minion_001:

- /opt//test001/123.txt

- /opt//test001/456.txt

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上,处于很明显的安全考虑,默认没有启用此功能,如果你需要的话可以参考文档,很方便的开启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值