自动化运维工具Saltstack(2)

二、安装部署

主机名   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

124a3a1b041a948fa4b8097991a0f25d.png

启动服务,并设置开机自启

/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地址)

启动客户端,并设置开机自启动

77cf9b86ef3447574af0654895f20fad.png

2.4 证书管理

#执行salt-key -L  查看秘钥验证

#执行Salt-key -a 加ID添加认证秘钥

6cc6a06a405ae39a584116b48c86c927.png

三、验证测试

b8760f1669a53dbd31846891fd0aab78.png

四、常见模块

(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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1d63fe1259c94c0750e359df8f07a45b.html