zoukankan      html  css  js  c++  java
  • saltstack简介

    一、简介

    1. Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。由Master和Minion构成,通过ZeroMQ进行通信
    2. Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口
    3. salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制
    4. 如果连接断开,sever端将无法对客户端进行控制;客户端若检查到断开后会定期的一直连接master端

    二、部署

    1、server端部署

    rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm
    
    yum -yinstallsalt-master

    2、client端部署

    rpm -Uvh http://mirror.pnl.gov/epel/5/i386/epel-release-5-4.noarch.rpm
    
    yum -yinstallsalt-minion

    3、server配置文件(/etc/salt/master)

    interface: 115.28.2.1#此处是server端监听的地址。
    auto_accept: True#此处是自动接受客户端发送过来的key,如果服务器很多的话,需要开启该功能

    4、client端配置(/etc/salt/minion)

    master: 115.28.2.1#这里改成你的master服务器地址
    id: web01#建议这里修改成主机名,便于master端分辨

    #每5分钟自动与master同步配置

    schedule:
    highstate:

    function:state.highstate
    minutes: 5

     5、启动

    (1)启动server端
    /etc/salt/master -d    #后台启动
    
    (2)启动client端
    /etc/salt/minion -d
    
    注意:minion启动后,自动会生成公钥私钥,并把公钥发送到master端。minion不监听端口,全靠和master保持长连接,可通过netstat-an|grepES来查看是否有连接

    master证书存放位置:

    /etc/salt/pki/master/minions

    salt-key  -L#查询所有接收到的证书

    salt-key  -a <证书名>#接收单个证书

    salt-key  -A#接受所有证书

    salt-key  -d <证书名>#删除单个证书

    salt-key  -D#删除所有证书

    三、语法

    标准格式:salt [选项]''  [arguments]
    
    salt '*' test.ping    #*为匹配所有主机,test.ping为salt一个函数,注:*号是正则,若分了多个组,可以类似于web*,只匹配web服务器
    
    salt '*' cmd.run 'df -h'    #查看所有主机的磁盘信息,cmd.run执行单个命令
    
    salt '*' cmd.script  salt://scripts/runme.sh 'arg1 arg2 "arg 3"'    #cmd.script执行一个脚本,即把本地脚本拷贝到远程主机上执行,hello.sh要放在指定的文件存放路径,默认是/srv/salt/
    
    salt '*' state.highstate    #向客户端推送master端配置。
    
    salt '*' cmd.run 'df -h ' -t 5    #超时控制

    特殊常用项:
    salt-cp '*' /etc/hosts/etc/hosts  #把master上的hosts文件分发到所有主机

    四、分组管理

    格式:示例
    nodegroups:
      group1: 'L@op-test-107,op-test-108'
      group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com'
      group2: 'G@os:Debian and foo.domain.com'
      group3: 'G@os:Debian and N@group1'
      group4:
        - 'G@foo:bar'
        - 'or'
        - 'G@foo:baz'

    五、分组执行

    salt -N group1 cmd.run 'hostname'

    六、客户端状态检查

    注:该处状态检查salt使用的是test.ping,如果服务器禁ping,则该处不准。
    
    salt-run manage.status#查看所有客户端up/down状态
    
    salt-run manage.up#只显示up状态的客户端
    
    salt-run manage.down#只显示down状态的客户端

    七、自动分发文件

    1、指定同步目录后,文件只需放到该目录下就会自动同步到minion端

    2、top.sls文件中指定哪些主机访问哪些目录

    3、用dir_mode和file_mode来设置文件和目录的权限(- dir_mode: 755;- file_mode: 744)

    示例:
    /data/share:    #moni上的文件
      file.managed:
        - source:     #源文件位置
        - user:    #文件属主
        - group:    #文件属组
        - mode:    #文件权限

    八、进程管理

    cat pack.sls
    apache:
      pkg:
        - name: httpd
        - installed
      service:
        - name: httpd
        - running
        - reload: True
        - watch:    #关注文件,如果发生变化就reload(reload是true)
            - file: /etc/httpd/conf/confd.conf
    
    /etc/httpd/conf/confd.conf
      file.manageed:
        - source: salt://    #文件来源
        - user: root
        - group: root
        - mode: 644
        - backup: minion    #备份

    九、根据需求自定义模块

    查看支持的模块:salt '*' sys.list_modules

    参考:http://rfyiamcool.blog.51cto.com/1030776/1262537

    本文摘抄于:https://www.jianshu.com/p/eb4026e4cf96

  • 相关阅读:
    欢迎加入【TIB自动化测试快讯】邮件列表!
    封装几个有用的QTP函数
    自动测试随想
    WatiN自动化测试
    使用vs2010的Coded UI Test实现数据驱动的用户自动登录测试
    QTP的DataTable操作
    TestComplete自动化测试课程大纲
    快速测试自动化
    自动化测试工程师职位(内部推荐)
    QTP库函数集
  • 原文地址:https://www.cnblogs.com/jayce9102/p/12088164.html
Copyright © 2011-2022 走看看