salt安装配置

saltstack大型分布式远程执行和配置管理系统。
 
安装前准备:
服务端master:centos6.5联网
172.16.2.91 node1 提供的是管理端的配置文件和可执行文件
客户端minion:centos6.5联网
172.16.2.92 node2 提供的是被管理端的配置文件和可执行文件
客户端minion:centos6.5联网
172.16.2.92 node3 提供的是被管理端的配置文件和可执行文件
 
salt 目标 模块.函数 
 
1. 修改服务端和客户端主机名,获取saltstack源,机器互通,重启让主机名生效。
修改三台主机名:
node1
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node1
# vim /etc/hosts
172.16.2.91 node1
172.16.2.92 node2
172.16.2.93 node3
 
node2
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node2
# vim /etc/hosts
172.16.2.91 node1
172.16.2.92 node2
172.16.2.93 node3
 
node3
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node3
# vim /etc/hosts
172.16.2.91 node1
172.16.2.92 node2
172.16.2.93 node3
 
2. 服务端node1安装配置saltstack,启动服务
# yum -y install salt-master salt
# cat /etc/salt/master | grep -v '^#'| grep -v '^$'
interface: 0.0.0.0
publish_port: 4505
worker_threads: 5
ret_port: 4506
注:配置文件里面冒号后面需要空一格
# /etc/init.d/salt-master start
 
3. 客户端node2安装配置saltstack,修改配置文件,启动服务
# yum -y install salt-minion salt
# cat /etc/salt/minion | grep -v '^#'| grep -v '^$'
master: 172.16.2.91 
id: node2
注:配置文件里面冒号后面需要空一格
# /etc/init.d/salt-minion start
 
4. 客户端node3安装配置saltstack,修改配置文件,启动服务
# yum -y install salt-minion salt
# cat /etc/salt/minion | grep -v '^#'| grep -v '^$'
master: 172.16.2.91 
id: node3
注:配置文件里面冒号后面需要空一格
# /etc/init.d/salt-minion start
 
5. 服务端node1上查看可以收到的客户端请求
# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
node2
node3
Rejected Keys:
 
6. 服务端node1接收所有客户端请求,并查看证书。
# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
node2
node3
Proceed? [n/Y] y
Key for minion node2 accepted.
Key for minion node3 accepted.
# ll /etc/salt/pki/master/minions
总用量 8
-rw-r--r-- 1 root root 451 8月  11 09:05 node2
-rw-r--r-- 1 root root 451 8月  10 17:13 node3
 
salt-key -a 节点:单独添加一个节点
salt-key -A :添加所有节点
salt-key -d 节点:单独删除一个节点
salt-key -D :删除所有节点
 
7. 完成后测试服务端node1和所有客户端节点的通信
# salt '*' test.ping 【test 模块  ping 函数】
node2:
    True
node3:
    True
# netstat -ant | grep '450[56]' 查看建立的连接状况
 
8. 备注
master默认监听两个端口,4505(publish_port)为salt的消息发布系统,4506(ret_port)为salt客户端与服务端通信的端口,所以确保客户端能跟服务端的这2个端口通信
 
服务端:# salt '*' disk.usage   获取客户端信息
 
9. 远程执行代码文件
在salt服务器/srv/salt/ (salt同步文件默认目录)目录下新建需要同步的文件first.txt,同步到salt客户端znode2和znode3下的/tmp/目录0
 

image

 

 
注:同步目录为cp.get_dir
# salt 'minion.com' cp.get_file salt://test.dir /tmp/test.dir makedirs=True gzip=5
makedirs表示没有的目录自动创建,gzip=5中1代表最小压缩,9代表最大压缩。
 
从客户端拿数据:
# salt 'minion.com' cp.push /home/hello.minion
将客户端的hello.minion拉到服务端来/var/cache/salt/master/minions/minion.com/files/home
 
10. grains 和 pillar
grains负责采集客户端的一些基本信息,存储在minion,可以在客户端自定义然后自动汇报上来,也可以从服务器端定义然后推下去采集完后再汇报上来。
pillar用于给客户端定义需要的数据,配置管理变量,比grains更灵活,存储在master。
 
获取客户端minion的所有grains值
# salt 'minion.com' grains.items
获取客户端minion的IP
# salt 'minion.com' grains.item ipv4
11. 测试与外网的连接
# salt '*' cmd.run 'ping -c 4 baidu.com'
12. salt命令手册
# salt '*' sys.doc
 
格式: 命令 对象 执行模块 参数
示例:salt '*' cmd.run "ping -c 4 baidu.com"
 
salt 'shell正则' 命令
salt -E 'prel 正则' 命令 按照正则匹配操作对象
salt -N  GroupName  命令 按照分组匹配操作对象
salt -L 'server_id1,server_id2,server_id3' 命令
 
13. salt分组:将安装配置相同或者相近的服务器可分为一组,方便批量安装和管理
这里将minion.com分到组group1。注意格式。
# vim /etc/salt/master
710 nodegroups:
711    group1: 'minion.com'
测试:

image

 

 
 
14. cmd.run表示执行命令返回结果
# salt 'minion.com' cmd.run 'uptime'
15. 
 
 
 
posted @ 2025-07-28 10:51  榆812  阅读(16)  评论(0)    收藏  举报