服务端:
yum install -y salt-master


客服端:
yum install -y salt-minion

 

服务端启动:
systemctl restartsalt-master
配置文件在:/etc/salt/master
密钥文件:/etc/salt/pki
├── master
│   ├── master.pem #公钥
│   ├── master.pub #私钥 #密钥是用来跟minion(客服端)做验证使用的
│   ├── minions
│   ├── minions_autosign
│   ├── minions_denied
│   ├── minions_pre
│   └── minions_rejected



客服端先做配置然后在启动 使用的yml语法:
配置文件在:/etc/salt/minion
配置: vim /etc/salt/minion
找到 #master
修改: master: 172.168.1.200
启动: systemctl restart salt-minion
启动后也会生成公钥私钥
minion_id 默认是会把主机名字写到这里面当ID用 可以定义配置文件中的id值进行修改


开始认证客服端:
[root@localhost]# cd /etc/salt/pki/
[root@localhost pki]# tree
.
├── master
│   ├── master.pem
│   ├── master.pub
│   ├── minions
│   ├── minions_autosign
│   ├── minions_denied
│   ├── minions_pre #这个目录里面的文件就是启动的客服端的公钥文件,默认是主机名字 一共2台
│   │   └── client
│   │   └── server_client
│   └── minions_rejected
└── minion
├── minion.pem
└── minion.pub

客服端到服务器认证流程:
客服端的公钥 发送给--> 服务器端 ---> salt-key -A 执行后 服务器端 会把密钥放到minions目录/etc/salt/pki/master/minions 也会把自己的公钥发给 --->客服端 双向认证模式

 


[root@localhost pki]# salt-key #查看当前列表需要认证的客服端
Denied Keys:
Unaccepted Keys:
client
server_client
Rejected Keys:


[root@localhost minions_pre]# salt-key -A #全部允许认证

[root@localhost minions_pre]# salt '*' test.ping #测试主机是否ping通
client:
True
server_client:
True


客服端和服务端通行:
1 服务端启动后: 会有2个端口 4505(发消息) 和 4506(收消息)
2 所有的客服端连接到服务端的4505这个端口 ,通过这个端口发送一个命令 所有的客服端都能收到返回一个结果到服务器的4506端口
3 zeromq:消息队列 通过这个队列推送消息

定义任务文件目录: vim /etc/salt/master
file_roots:
base:
- /srv/salt/base
test:
- /srv/salt/test
dev:
- /srv/salt/dev


base目录下面 新建httpd.sls base这个目录是必须要有的
httpd-install:
pkg.installed:
- name: httpd

http-service:
service.running:
- name: httpd
- enable: True


salt \* state.sls httpd #state.sls  # 执行模块 httpd指的是 httpd.sls    开始安装httpd 并且启动


salt 高级状态. 也就是说给那个服务器做什么任务
[root@server_client /]# vim /srv/salt/base/top.sls #文件必须叫top.sls 在master 配置#state_top: top.sls 这定义了 默认就叫这个文件名 并且还要把这个文件放base目录里面
格式:
base:
'client': #那个主机
- httpd #执行任务 httpd 指的是 上面master 定义的任务文件中/srv/salt/base 中的 httpd.sls
'server_client':
- httpd
[root@server_client /]# salt '*' state.highstate #运行高级状态 这里面的*是通知所有的机器干top.sls里面自己对应的活 但是如果top.sls里面没让自己这个客服端处理任务,机器就不会运行任务

 

posted on 2019-08-20 10:30  Python哥  阅读(1008)  评论(0编辑  收藏  举报