之前我也写了一个关于配置管理概述的文章,比如《Saltstack配置管理学习笔记:配置管理概述》里边有讲解到使用file.managed 实现文件的同步,一般来讲file.managed只适合管理配置这样的文本文件,那么如果我们只是拷贝一些master服务器上文件和目录到minion服务器怎么实现呢。那么就要用打匹配cp这个组件了,一般用到的函数 是cp.get_file和 cp.get_dir。cp.get_file实现从master端复制文件到minion服务器端的对应文件中,cp.get_dir是实现从master端复制目录到minion服务器的对应目录下。下边就简单写下如果方法。
1,cp.get_file实现从master端复制文件到minion服务器的文件中
我们操作实现一个/srv/salt/dev/data/zabbix_agentd_install.sh 拷贝到 web9这个服务器的/home/shell/zabbix_agent_install.sh
使用的命令是:
[[email protected] data]# salt 'web9' cp.get_file salt://dev/data/zabbix_agentd_install.sh /home/shell/zabbix_agent_install.sh
web9:
/home/shell/zabbix_agent_install.sh
现在到web9的服务器/home/shell,查看多了一个文件:
[[email protected] ~]# cd /home/shell/
[[email protected] shell]# ll
total 4
-rw-r--r--. 1 root root 1297 May 14 20:22 zabbix_agent_install.sh
2,cp.get_dir是实现从master端复制目录到minion服务器的对应目录
上边演示了如果拷贝一个文件到minion端的文件中,如果是我们拷贝data这个目录过去呢。就需要用到cp.get_dir 这个命令。命令用法是:
[[email protected] data]# salt 'web9' cp.get_dir salt://dev/data /home/shell/
web9:
- /home/shell//data/zabbix_agentd_install.sh
注意/home/shell下边不要跟其他的,salt会自动到下边常见data目录。现在到web9的服务器/home/shell查看多了一个data目录:
[[email protected] shell]# ll
total 8
drwxr-xr-x. 2 root root 4096 May 14 20:27 data
-rw-r--r--. 1 root root 1297 May 14 20:22 zabbix_agent_install.sh
更多cp用法请参考saltstack官网:https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cp.html#module-salt.modules.cp