Saltstack文件管理
salt-cp简述
salt-cp命令用于复制一个文件到多个minion系统中。指定minion可以使用通配符、正则表达式、Grains等方法
salt-cp '*' [ options ] SOURCE DEST
salt-cp -E '.*' [ options ] SOURCE DEST
salt-cp -G 'os:CentOS*' [ options ] SOURCE DEST
minion匹配
-E 目标选择;表示以正则表达式匹配minion
-G 目标选择表示使用minion上的Salt Graings系统的返回值来匹配特定minion
-L 目标minion别解析成用逗号分隔的列表
打开 master配置
# Example: 记住 第一行 是 空格二个 二行是4个 三行是6个哦
file_roots:
base:
- /srv/salt/
file_roots:
base:
- /srv/salt/
salt-cp 用例
#利用 salt 传输和安装 jdk
mv jdk-8u172-linux-x64.rpm /srv/salt/
salt prod-secret* test.ping
salt prod-secret* cp.get_file salt://jdk-8u172-linux-x64.rpm /root/jdk-8u172-linux-x64.rpm
salt prod-secret* cmd.run 'rpm -ivh /root/jdk-8u172-linux-x64.rpm'
alt prod-secret* cmd.run 'java'
将saltcptest 文件 发送到 OS为CentOS的minion的 /opt目录下
[root@vm ~]# salt-cp -G 'os:centos' saltcptest /opt/saltcptest
192.168.30.95:
----------
/opt/saltcptest:
True
192.168.30.96:
----------
/opt/saltcptest:
True
[root@vm ~]# salt-cp -G 'os:centos' saltcptest /opt
192.168.30.95:
----------
/opt:
[Errno 21] Is a directory: '/opt'
192.168.30.96:
----------
/opt:
[Errno 21] Is a directory: '/opt'
将salt.doc文件发送到所有的minion的/usr/local目录下
salt-cp '*' salt.doc /usr/local/
返回值:{'192.168.1.223': {'/usr/local/salt.doc': True}} 表示成功
salt-cp -L '192.168.1.223' install.log /usr/local/
返回{'192.168.1.223': {'/usr/local/install.log': True}} 表示成功
参考
Salt文件服务器与salt-cp以及cp模块