zoukankan      html  css  js  c++  java
  • SaltStack使用总结

    SaltStack介绍

    系统管理员日常会进行大量的重复性操作,例如安装软件,修改配置文件,创建用户,批量执行命令等等,假设有上百台服务器(或者网络设备)需要重复维护工作,如果一台一台维护效率低下且耗费成本和人力,这时候自动化运维工具SaltStack显示出其优势了,帮助管理维护人员进行批量执行原来的重复工作,不但提高了效率而且节省了成本。

    部署规划

    真实IP地址 虚拟IP 角色 角色描述 服务器版本
    192.168.31.11 192.168.31.10 salt-master 主salt服务器 centos6.10
    192.168.31.12 - salt-master 备salt服务器 centos6.10
    192.168.31.13 - salt-minion salt客户机 centos6.10

    tips:请关闭selinux,并做好iptables规则,基础环境配置过程本案例不体现。

    # salt端口
    4505   publish_port 提供远程命令发送功能
    4506   ret_port     提供认证,文件服务,结果收集等功能
    确保客户端可以通信服务器的此2个端口,保证防火墙允许端口通过。因此在测试环境直接关闭防火墙。
    

    SaltStack和keepalive软件安装

    主salt服务器

    yum -y install epel-release	#安装EPEL环境
    yum -y install salt-master	#安装salt控制端
    yum -y install keepalived  	#安装keepalive
    

    备salt服务器

    yum -y install epel-release	#安装EPEL环境
    yum -y install salt-master	#安装salt控制端
    yum -y install keepalived  	#安装keepalive
    

    salt客户端

    yum -y install epel-release	#安装EPEL环境
    yum install salt-minion		#安装salt控制端
    

    SaltStack和keepalive配置

    主salt服务器

    # saltstack配置
    
    vim /etc/salt/master
    interface: 192.168.31.10  #绑定到本地的192.168.31.10地址
    publish_port: 4505  #管理端口,命令发送
    user: root      #运行salt进程的用户
    worker_threads: 5  #salt运行线程数,线程越多处理速度越快,不要超过cpu个数
    ret_port: 4506  #执行结果返回端口
    pidfile: /var/run/salt-master.pid #pid文件位置
    log_file: /var/log/salt/master  #日志文件地址
    
    #自动接收minion的key
    auto_accept: False
    
    #keepalive配置
    
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         wang_zengyi@126.com    #接收告警的邮箱
       }                                     #注意需要单独配置smtp_send邮箱
       notification_email_from 647956023@qq.com  #发送告警的邮箱
       smtp_server 182.254.38.18   #发送邮件的服务器地址
       smtp_connect_timeout 30
       router_id study01
    }
    
    vrrp_script check_salt {
        script "/usr/bin/killall -0 salt-master"   
        interval 2
    }
    
    vrrp_instance VI_1 {
        state BACKUP         #状态为主,默认抢占
        interface eth0         #监听的服务接口
        virtual_router_id 51   #主备必须一致,VRRPID
        priority 80          #优先级,越大越优先
        advert_int 1       #心跳报文通告间隔
        authentication {
            auth_type PASS    #keepalive认证类型
            auth_pass 1111    #keepalive认证密码
        }
        notify_master "/etc/keepalived/master.sh"   #主状态通告脚本
        notify_backup "/etc/keepalived/backup.sh"   #备状态通告脚本
        notify_fault "/etc/keepalived/fault.sh"          #故障状态通过脚本
    
        track_script {
        check_salt                 #track salt的检测脚本
        }
    
        virtual_ipaddress {
            192.168.31.10/24 dev eth0  table eth0:0  #虚拟IP
        }
    }    
    

    备salt服务器

    vim /etc/salt/master
    interface: 192.168.31.10  #绑定到本地的192.168.31.10地址
    publish_port: 4505  #管理端口,命令发送
    user: root      #运行salt进程的用户
    worker_threads: 5  #salt运行线程数,线程越多处理速度越快,不要超过cpu个数
    ret_port: 4506  #执行结果返回端口
    pidfile: /var/run/salt-master.pid #pid文件位置
    log_file: /var/log/salt/master  #日志文件地址
    
    #自动接收minion的key
    auto_accept: False
    
    #keepalive配置
    
    vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         wang_zengyi@126.com    #接收告警的邮箱
       }                                     #注意需要单独配置smtp_send邮箱
       notification_email_from 647956023@qq.com  #发送告警的邮箱
       smtp_server 182.254.38.18   #发送邮件的服务器地址
       smtp_connect_timeout 30
       router_id study02
    }
    
    vrrp_script check_salt {
        script "/usr/bin/killall -0 salt-master"   
        interval 2
    }
    
    vrrp_instance VI_1 {
        state MASTER         #状态为主,默认抢占
        interface eth0         #监听的服务接口
        virtual_router_id 51   #主备必须一致,VRRPID
        priority 100          #优先级,越大越优先
        advert_int 1       #心跳报文通告间隔
        authentication {
            auth_type PASS    #keepalive认证类型
            auth_pass 1111    #keepalive认证密码
        }
        notify_master "/etc/keepalived/master.sh"   #主状态通告脚本
        notify_backup "/etc/keepalived/backup.sh"   #备状态通告脚本
        notify_fault "/etc/keepalived/fault.sh"          #故障状态通过脚本
    
        track_script {
        check_salt                 #track salt的检测脚本
        }
    
        virtual_ipaddress {
            192.168.31.10/24 dev eth0  table eth0:0  #虚拟IP
        }
    }    
    

    salt客户端

    vim /etc/salt/minion
    master: 192.168.31.10
    master_port: 4506
    user: root
    id: 192.168.31.13
    acceptance_wait_time: 10
    log_file: /var/log/salt/minion
    

    启动salt和keepalive服务

    主salt服务器

    /etc/init.d/keepalived restart
    chkconfig --level 35 keepalived on
    /etc/init.d/salt-master restart
    chkconfig --level 35 salt-master on
    

    备salt服务器

    /etc/init.d/keepalived restart
    chkconfig --level 35 keepalived on
    /etc/init.d/salt-master restart
    chkconfig --level 35 salt-master on
    

    salt客户端

    etc/init.d/salt-minion restart
    chkconfig --level 35 salt-minion on
    

    在master上接收minion秘钥

    [root@master ~]# salt-key -L
    Accepted Keys:
    Denied Keys:
    Unaccepted Keys:
    192.168.31.13   #此时已经出现客户端的key列表
    Rejected Keys:
    
    [root@master ~]# salt-key -a 192.168.31.13
    The following keys are going to be accepted:
    Unaccepted Keys:
    slave
    Proceed? [n/Y] y
    Key for minion slave accepted.
    
    [root@master ~]# salt-key -L
    Accepted Keys:
    192.168.31.13   #此时已经出现在接受的key
    Denied Keys:
    Unaccepted Keys:
    Rejected Keys:
    

    tips:将keepalive切换到备机执行同样操作,完成测试环境搭建。

    salt-key

    [root@linux-node1 ~]# 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(该状态为未被认证)
    
    #在master端/etc/salt/master配置
    auto_accept: True   #如果对Minion信任,可以配置master自动接受请求
    

    日常使用命令

    # 服务端
    /etc/salt/master      # salt master主配置文件
    /usr/bin/salt           #salt master 核心操作命令
    /usr/bin/salt-cp       #salt 文件传输命令
    /usr/bin/salt-key    #salt证书管理
    /usr/bin/salt-master    #salt master 服务命令
    /usr/bin/salt-run          #salt master runner命令
    
    # 客户端
    /etc/salt/minion     #minion配置文件
    /usr/bin/salt-call    #拉取命令
    /usr/bin/salt-minion   #minion服务命令
    /usr/lib/systemd/system/salt-minion.service   #minion启动脚本
    

    更新中……

  • 相关阅读:
    【NOIP】提高组2015 运输计划
    【BZOJ】1635: [Usaco2007 Jan]Tallest Cow 最高的牛
    【51nod】1766 树上的最远点对
    【BZOJ】2054: 疯狂的馒头
    【SRM20】数学场
    【Luogu】P3930 SAC E#1
    【Luogu】P3927 SAC E#1
    【Luogu】 P3928 SAC E#1
    【Codeforces】868C. Qualification Rounds
    【CodeForces】866D. Buy Low Sell High
  • 原文地址:https://www.cnblogs.com/wangzengyi/p/12571779.html
Copyright © 2011-2022 走看看