saltstack高效运维

概念

  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"
posted @ 2019-06-28 08:58  言值  阅读(183)  评论(0编辑  收藏  举报