本文在学习saltstack的过程中编写,内容比较基础,方便使用时查阅命令。
安装
为了方便起见,直接采用yum的安装方式,centos源中并没有salt,需要手工添加一下。
CentOS 7
安装master
| |
修改/etc/salt/master配置文件,在其中指定salt文件根目录位置,默认路径为/srv/salt/。
| |
salt在安装的时候已经创建了systemctl命令启动程序需要的service文件,位于/usr/lib/systemd/system/salt-master.service,重启systemctl restart salt-master.service生效。
CentOS 6.5
安装minion
| |
修改/etc/salt/minion配置文件,在其中指定master主机的地址
| |
执行service salt-minion restart对服务进行重启。
连通性测试
执行salt-key -L命令可以看到已认证和未认证的minion,执行salt-key -a 192.168.204.149可接收minion。
在master主机中执行salt '*' test.ping可测试连接的minion主机。
| |
state
可以通过预先定义好的sls文件对被控主机进行管理,这里演示一个简单的文件复制的例子,该例子可以将master主机上的vimrc文件复制到目标主机上。
在master主机的/svr/salt/edit目录下新建vim.sls文件,文件内容如下:
| |
另外在edit目录下需要存在一个空的init.sls,以确保state.sls可以找到该目录下的sls文件。同时该目录下还需要存在要复制的vimrc文件。
执行salt '*' state.sls edit.vim即可以执行该命令。
如果将vim.sls更改为init.sls文件,执行salt '*' state.sls edit命令即可。
常用命令
salt ‘192.168.204.149’ cmd.run ‘free -m’
salt ‘192.168.204.149’ sys.list_modules 列出minion支持哪些模块,默认已经支持很多模块
salt ‘192.168.204.149’ cp.get_file salt://test_file /root/test_file 将master主机file_roots目录下的文件复制到minion任意目录下,该命令不可以将master主机任意目录下的文件进行复制
salt ‘192.168.204.149’ cp.get_dir salt://test_dir/ /root/ 实验未成功
salt ‘*’ file.mkdir dir_path=/root/test_dir user=root group=root mode=700 在minion主机上创建目录s
参考文章
*《python自动化运维技术与最佳实践》