概念
1. salt灵活性强大,可以进行大规模部署,也能进行小规模的系统部署。salt的设计架构适用于任意数量的服务器,从少量本地网络系统到跨越数个数据中心,拓扑架构都是c/s模型,配置简单。
2. 不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。
3. Salt是python编写的,支持用户通过python自定义功能模块,也提供了大量的python API接口,用户可以根据需要进行简单快速的扩展。
4. 角色区分为salt-master和salt-minion,master是中心控制系统,minion是被管理的客户端。
安装
1. salt安装服务器环境
192.168.11.192 master端 (主)
192.168.11.196 minion端 (从)
2. 分别配置hosts文件, 用于加速域名解析, 以及安装 salt-master 和 salt-minion软件
服务端: vim/etc/hosts
192.168.11.196 slave
192.168.11.192 master
客户端: vim/etc/hosts
192.168.11.196 slave
192.168.11.192 master
3. 安装软件
master服务端
yun install salt-master -y
salve客户端
yum install salt-minion -y
4. master端的配置文件: /etc/salt/master
interface: 0.0.0.0
publish_port: 4505
user: root
worker_threads: 5ret_port: 4506
pidfile: /var/run/salt-master.pid
log_file: /var/log/salt/master
~
5. minion端的配置文件
master: master
master_port: 4506
user: rootid: slave
acceptance_wait_time: 10log_file: /var/log/salt/minion
6. 分别开启 salt-master, salt-minion, 查看秘钥接受情况
1) 查看所有秘钥情况
salt-key *
2) 单独接受一个秘钥信息
salt-key -a 秘钥名
3) 秘钥接收后会被管控, 在salve端执行命令
salt 'salve' cmd.run 'touch /tmp/test.txt'
4) 检查两条秘钥情况
salt-key -f slave # (master端执行)
salt-call --local key.finger # (slave端执行)
5) salt-key
只有master端接受了minion key后, 才可以进行管理. 具体的认证命令为salt-key, 如下:
salt-key -L
Accepted Keys: # 已经接受的key
Denied Keys: # 拒绝的key
Unaccepted Keys:# 未加入的key
Rejected Keys: # 吊销的key
常用参数
-L #查看KEY状态
-A #允许所有
-D #删除所有
-a #认证指定的key
-d #删除指定的key
-r #注销掉指定key(该状态为未被认证)
7. 在master端: /etc/salt/master 配置
auto_accept: True # 如果对Minion信任,可以配置master自动接受请求
8. 检测机器是否存活
salt '*' test.ping
1) salt的命令参数格式
salt命令 参数 目标 salt模块的函数 远程执行的参数
2) 返回值的格式替换
salt --out=json "*" cmd.run "hostname"
3) 返回yaml的语法格式
salt --out=yaml "*" cmd.run "hostname"
9. 远程安装nginx
salt "*" pkg.install "nginx"
salt "*" pkg.remove "nginx"
10. salt数据管理之grains
salt 'slave' grains.items
salt 'slave' grains.item ipv4 #单独找出ipv4的信息
11. 远程关机
local.cmd('*','cmd.run',['poweroff'])
yaml语法学习
{
"s17":{
"男同学":["lucky","happy","jason"],
"女同学":["girl","flower","green"]
}
}
# yaml语法转换如下
"s17":
"男同学":
- "lucky"
- "happy"
- "jason"
"女同学":
- "girl"
- "flower"
- "green"