SaltStack批量化运维

SaltStack使用python开发,非常简单易用和轻量级的管理工具; 采用 C/S模式,由master和Minion构成,通过ZeroMQ进行通信,速度非常快。
ZeroMQ是一种基于消息队列的多线程高性能通讯库。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。
1.下载安装epel
[root@saltstack saltstack]# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[root@saltstack saltstack]# ls
epel-release-6-8.noarch.rpm
[root@saltstack saltstack]# rpm -ivh epel-release-6-8.noarch.rpm
[root@saltstack saltstack]# ls /etc/yum.repos.d/ ----查看是否安装成功
CentOS-Base.repo epel.repo epel-testing.repo
2.安装saltstack服务端salt-master。
[root@saltstack saltstack]# yum install -y salt-master
[root@saltstack saltstack]# chkconfig salt-master on
[root@saltstack saltstack]# service salt-master restart
Stopping salt-master daemon: [FAILED]
Starting salt-master daemon: [ OK ]
如果有启动问题可以检查/var/log/salt/master日志文件进行排错。检查服务器端口是否正常开启。
4505(publish_port)为saltstack的消息发布系统
4506(ret_port)为saltstack客户端与服务端通信的端口。

[root@saltstack saltstack]# netstat -nptul|grep python
tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN1990/python2.6
tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN2014/python2.6
  saltstack服务端的配置文件是/etc/salt/master ,服务端配置文件可以不用配置,默认情况下salt-master在所有接口上监听4505和4506两个端口,如果想绑定某个具体的ip,需要对/etc/salt/master配置文件中额interface做出修改,修改后需要重启服务。
file://C:\Users\ADMIN-~1\AppData\Local\Temp\ct_tmp/1.png

3.在客户端上安装 saltstack的客户端程序,客户端上也 需要先配置好 EPEL,然后 yum安装 salt-minion客户端程序。
[root@salt-minion ~]# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[root@salt-minion ~]# rpm -ivh epel-release-6-8.noarch.rpm
[root@salt-minion ~]# yum install -y salt-minion
[root@salt-minion ~]# vi /etc/salt/minion #修改客户端配置文件
master: 192.168.1.112 #指定salt服务器的ip地址,注意冒号后面有空格
id: 192.168.1.113_client #指定salt客户机的id,注意冒号后面有空格,id可以随便命名,可以根据服务器功能或者主机名来命名,这样清晰明了。
4.修改完配置文件,重启服务客户端日志文件:/var/log/slat/minion 可以进行排错
[root@salt-minion ~]# chkconfig salt-minion on
[root@salt-minion ~]# service salt-minion restart
Stopping salt-minion daemon: [FAILED]
Starting salt-minion daemon: [ OK ]
把所有需要管理的客户机都按照上述步骤安装好客户端后,就可以回到服务端进行下一 步的管理控制了。这时候 master要想真正和客户端通信还需要配置salt的认证,minion在 第一次启动时,会在 /etc/salt/pki/minion/下自动生成 minion.pem(private key)和 minion.pub(publickey),然后将 minion.pub发送给 master。master在接收到 minion的publickey后,通过salt-sky命令接收minionpublic key,这样在master 的
/etc/salt/pki/master/minions下将会存放以客户端id命名的publickey,然后master将能对minion发送指令。

[root@saltstack minions]# pwd
/etc/salt/pki/master/minions
认证命令为:salt-key
-a 接受指定的客户端
-A 接受所有的客户端
-r 拒绝指定的客户端
-R 拒绝所有的客户端
-d 删除指定的客户端
-D 删除所有的客户端

[root@saltstack minions]# salt-key -Ay #添加所有的客户端,y不用输入yes
The following keys are going to be accepted:
Unaccepted Keys:
192.168.1.113_client
Proceed? [n/Y] y
Key for minion 192.168.1.113_client accepted.
[root@saltstack minions]# ls
192.168.1.113_client
[root@saltstack minions]# salt-key -L #在服务器端查看客户端
Accepted Keys: #已经接受的客户端
192.168.1.113_client
Denied Keys:
Unaccepted Keys:
Rejected Keys:
[root@saltstack minions]#
[root@saltstack minions]# lsof -i:4505
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
salt-mast 1990 root 12u IPv4 16949 0t0 TCP *:4505 (LISTEN)
salt-mast 1990 root 14u IPv4 24721 0t0 TCP 192.168.1.112:4505->192.168.1.113:39428(ESTABLISHED)
部署完成
---------------------------------------------------------------------------------------------------------------------------------------
salt管理客户端的各种命令
命令 目标 操作 客户机上面执行的所有操作
[root@saltstack minions]# salt "*" cmd.run "ip add showeth0|grep global" #查看所有客户端的ip
192.168.1.113_client:
inet 192.168.1.113/24 brd 192.168.1.255 scope global eth0
[root@saltstack minions]# salt "*" test.ping #测试连通性
192.168.1.113_client:
True

[root@saltstack /]# salt "*" cmd.run "df -Th"
192.168.1.113_client:
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_slave1-lv_root ext4 18G 2.3G 15G 14% /
tmpfs tmpfs 116M 12K 116M 1% /dev/shm
/dev/sda1 ext4 485M 32M 428M 7% /boot

cmd.run 远程在客户端上执行 shell命令,然后返回输出
cmd.script 在客户端运行指定的脚步
 salt'192.168.1.113_client' cmd.script salt://deluser.sh

salt '192.168.1.113_client' network.ip_addrs



[root@saltstack /]# salt-run manage.status
down:
up:
- 192.168.1.113_client
复制服务器上的文件到客户机下
                                        目标 文件位置 客户机目录
[root@saltstack /]# salt-cp "*" /saltstack/epel-release-6-8.noarch.rpm/etc/
{'192.168.1.113_client':{'/etc/epel-release-6-8.noarch.rpm': True}}
[root@saltstack /]# salt "192.168.1.113_client" cmd.run "ls/etc|grep epel" 查看是否成功
192.168.1.113_client:
epel-release-6-8.noarch.rpm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值