二、安装部署
主机名 IP地址 系统saltstack-server 172.20.4.50 CentOS release 6.9 (Final)
saltstack-1 172.20.4.51 CentOS release 6.9 (Final)
saltstack-2 172.20.4.52 CentOS release 6.9 (Final)
2.1 初始化环境:
yum install ntpdate -y && ntpdate time1.aliyun.com #同步时间
service iptables stop #关闭iptables
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config #关闭selinux
setenforce 0
cat > saltstack.repo <<EOF
[saltstack-repo]
name=SaltStack repo for RHEL/CentOS $releasever
baseurl=https://repo.saltstack.com/yum/RedHat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
EOF
rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub
yum cleanall && yum makecache #更新yum源
2.2 master 端安装
yum -y install salt-master
mkdir /etc/salt/states
编辑/etc/salt/states
interface: 0.0.0.0
state_top: top.sls
file_roots:
base:
- /etc/salt/states
启动服务,并设置开机自启
/etc/init.d/salt-master start
chkconfig salt-master on
2.3 monitor端安装
配置yum源和master方法一致
yum -y install salt-minion
修改/etc/salt/minion文件(slatstack-1/2 都更改成对应的id,master指向master的ip地址)
启动客户端,并设置开机自启动
2.4 证书管理
#执行salt-key -L 查看秘钥验证
#执行Salt-key -a 加ID添加认证秘钥
三、验证测试
四、常见模块
(1)、cp模块(实现远程文件、目录的复制,以及下载URL文件等操作)
将主服务器file_roots指定位置下的目录复制到被控主机
salt "*" cp.get_dir salt://testdir /tmp/test
将主服务器file_roots指定位置下的文件复制到被控主机
salt "*" cp.get_file salt://testdir/testfile /tmp/testfile
下载指定URL内容到被控主机指定位置
salt "*" cp.get_url http://mirrors.163.com/.help/CentOS6-Base-163.repo /etc/yum.repos.d/CentOS6-Base-163.repo
(2)、cmd模块(实现远程的命令行调用执行)
salt "*" cmd.run 'netstat -lntup'
(3)、cron模块(实现被控主机的crontab操作)
为指定的被控主机、root用户添加crontab信息
salt "*" cron.set_job root '*/5' '*' '*' '*' '*' '/usr/sbin/ntpdate time1.aliyun.com'
删除指定的被控主机、root用户的crontab信息
salt "*" cron.rm_job root '/usr/sbin/ntpdate time1.aliyun.com'
查看定时任务
salt '*' cron.raw_cron root
(4)、dnsutil模块(实现被控主机通用DNS操作)
为被控主机添加指定的hosts主机配置项
salt '*' dnsutil.hosts_append /etc/hosts 127.0.0.1 test.saltstack.com
(5)、file模块(被控主机文件常见操作,包括文件读写、权限、查找、校验等)
salt '*' file.get_sum /etc/resolv.conf md5
salt '*' file.stats /etc/resolv.conf
(6)、network模块(返回被控主机网络信息)
salt '*' network.ip_addrs
salt '*' network.interfaces
(7)、pkg包管理模块(被控主机程序包管理,如yum、apt-get等)
salt '*' pkg.install sysstat
salt '*' pkg.file_list sysstat
(8)、service 服务模块(被控主机程序包服务管理)
salt '*' service.enable crond
salt '*' service.disable crond
salt '*' service.status crond
salt '*' service.stop crond
salt '*' service.start crond
salt '*' service.restart crond
salt '*' service.reload crond