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

  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/jayce9102/p/12088164.html
Copyright © 2011-2022 走看看