zoukankan      html  css  js  c++  java
  • saltstack

    slatstack

    一、优势

    1、使用的最小最快的网络负载,使用python开发,提供简单的编程接口

    2、通讯层使用的zeroMQ,实现是的它肯快速

    salt -master  

    master: 4505 发送

    minion: 4506 返回结果  

    二、 安装:

    使用yum 安装需要epel源

    master:

    yum install salt-master

    minion

    yum install salt-minion

    还可以使用源码安装和pip安装

    三、配置文件


    [root@vm2 rpm-gpg]# ls /etc/salt/
    minion

    # 指定master 位置
    #master: salt  指定maste 的主机名或者ip

    master: 10.0.2.4

    # clusters.
    #id:  salt - minion 需要唯一,默认不写是主机名

    id: vm3.node.com 

    minion 配置文件

     master:fqdn ,主机名,ip

          id:minion的主机名,只要是唯一能够表示minion主机即可

    然后依次启动master 和minion 的slat服务

    [root@vm1 yum.repos.d]# /etc/init.d/salt-master start

      

    [root@vm1 yum.repos.d]# /etc/init.d/salt-minion start
    

      

    *master 上修改配置文件不需要重启

    master启动后会生成一些文件:

    [root@vm1 yum.repos.d]# ls /etc/salt/pki/master/
    master.pem  master.pub  minions(已认证的key)  minions_autosign  minions_denied  minions_pre(待认证的key)  minions_rejected(拒绝的key)
    

      

    待认证
    [root@vm1 master]# ls minions_pre/ vm2.node.com [root@vm1 master]# salt-key -L Accepted Keys: vm3.node.com Denied Keys: Unaccepted Keys: vm2.node.com Rejected Keys:


    已经认证的

      [root@vm1 master]# ls minions
      vm3.node.com

      

    [root@vm1 yum.repos.d]# ls /etc/salt/pki/master/master.pem
    /etc/salt/pki/master/master.pem
    

      

    [root@vm1 yum.repos.d]# ls /var/cache/salt/master/.root_key
    /var/cache/salt/master/.root_key
    

      

    [root@vm1 yum.repos.d]# ls /var/run/salt-master.pid
    /var/run/salt-master.pid
    

    minion端:

    [root@vm2 rpm-gpg]# ls /etc/salt/pki/minion/
    minion_master.pub(master 认证以后就会有master的公钥)  minion.pem(私钥)  minion.pub(公钥)
    
    [root@vm2 rpm-gpg]# ls /etc/salt/
    minion (配置文件)  minion.d  minion_id(默认是minion的主机名)  pki
    

      

      

      

    四、命令

    salt  让所有minion执行

    salt-key 管理minion 秘钥

    salt-cp  复制

    salt-syndic 代理使用

    salt-call :

      minion 端主动同步master配置文件

    1、salt-key

      -L 列出所有的key

      -a 允许某台minion 

      -A 允许所有的minion 

      -r 拒绝莫一台

      -R 拒绝所有

      -d 删除指定的minion

      -D 删除所有minion

      -y 不用输入 “yes”


    查看

    [root@vm1 yum.repos.d]# salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: redir-proxy.core.ignum.cz vm2.node.com

       

    添加所有请求的minion申请
    [root@vm1 yum.repos.d]# salt-key -A
    The following keys are going to be accepted:
    Unaccepted Keys:
    redir-proxy.core.ignum.cz
    vm2.node.com
    Proceed? [n/Y] y
    

      

    删除所有已经通过的申请

    [root@vm1 yum.repos.d]# salt-key -D
    The following keys are going to be deleted:
    Accepted Keys:
    redir-proxy.core.ignum.cz
    vm2.node.com
    Proceed? [N/y] y
    

     

    测试所有minion 是否通 , (使用 test模块中的ping)

    [root@vm1 yum.repos.d]# salt "*" test.ping
    redir-proxy.core.ignum.cz:
        True
    vm2.node.com:
        True
    

      

    客户端修改主机名

    1.修改主机名

    2.修改minion端生成的minion_id  (这个文件是自动读取minion 主机名生成的)

    [root@vm2 rpm-gpg]# cat /etc/salt/minion_id
    vm2.node.com
    

    3.master 删除已经注册的已修改的主机名的minion节点key重新认证

    练习修改主机名:

    minion:
    [root@vm3 ~]# vim /etc/sysconfig/network
    [root@vm3 ~]# hostname vm3.node.com
    [root@vm3 ~]# echo vm3.node.com > /etc/salt/minion_id   |  清空这个文件重启  | rm minion_id  pki/  然后重启minion
    [root@vm3 ~]# /etc/init.d/salt-minion restart
    
    
    master端操作:踢出原主机名
    [root@vm1 yum.repos.d]# salt-key -d vm5.node.com
    The following keys are going to be deleted:
    Accepted Keys:
    vm5.node.com
    Proceed? [N/y] y
    Key for minion vm5.node.com deleted.
    
    minion:
    [root@vm3 ~]# /etc/init.d/salt-minion condrestart
    
    master端操作:
    [root@vm1 yum.repos.d]# salt-key -L
    Accepted Keys:
    vm2.node.com
    Denied Keys:
    Unaccepted Keys:
    vm3.node.com
    Rejected Keys:
    
    [root@vm1 yum.repos.d]# salt-key -a vm3.node.com -y
    The following keys are going to be accepted:
    Unaccepted Keys:
    vm3.node.com
    Key for minion vm3.node.com accepted.
    

    4、 查看minion执行过程

    import salt.utils.event
    event = salt.utils.event.MasterEvent('/var/run/salt/master')
    for eachevent in event.iter_event(full=True):
        print eachevent
        print("--------")
    

      

      

    五、执行命令

    salt "*" cmd.run "cat /etc/issus"
    

      

     六、return 你日志模块

    七、执行分组:

    执行:

    salt -N sec-web test.ping
    

      

    八,模块:

    查看模块

    salt 'web-site-15-170.dev.xesv5.com' sys.doc
    

                 

             

     九、执行脚本

    salt "*" cmd.script salt://etc/script/*
    

     

    脚本文件的编写

    /etc/resolv.conf:    #同步到的位置
      file.managed:  #模块名称
        - source: salt://xes/hosts/files/resolv.conf   #源文件的位置 在salt的相对目录下
        - user: root        
        - group: root
        - mode: 644

      

    [root@vm1 salt]# cat resove.sls
    /tmp/resove.conf:
      file.managed:
        - source: salt://etc/resolv.conf
        - user: root
        - group: root
        - mode: 600
    
    [root@vm1 salt]# cat top.sls
    base:
      '*':
        - resove
    下面的两个命令都可以将上面的/etc/resolve.conf  同步到 minion 主机的tmp目录下

    [root@vm1 salt]# salt '*' state.highstate
    [root@vm1 salt]# salt '*' state.sls resove  这样指定配置文件执行就不需要top了。
    

      

     

    cron

     添加定时任务脚本rm-roommsg: #传输一个脚本

      file.managed:
        - name: /root/scripts/rm_laoshi_roomsg_img.sh
        - source: salt://xes/files/rm_laoshi_roomsg_img.sh
        - mode: 755
        - user: root
        - group: root
    
      cron.present:      #定义一个定时任务,每两天执行一次这个脚本
    - name: /bin/bash rm_laoshi_roommsg_img.sh >/dev/null 2>&1 - identifier: del laoshi roommsg 2 days ago img file - user: root - minute: '0' - hour: '1' - daymonth: "*/2" - require: - file: rm-roommsg

    得到的结果

    # SALT_CRON_IDENTIFIER:del laoshi roommsg 2 days ago img file
    0 1 */2 * * /bin/bash rm_laoshi_roommsg_img.sh >/dev/null 2>&1
    
     
    crontab -l
    identifier: 参数决定了是新增任务还是修改任务,如果不该这个参数后面的值,而只修改name 或者minute 等值,则他会查找 crontab中有没有相同的 indentifier 的任务,如果有则修改,没有则添加

      

      

  • 相关阅读:
    C#可空类型 T?
    Unity踩过的坑
    Unity可视化数据:创建图表
    unity3d屏幕截图功能
    unity3d插入android有米广告
    Unity调用PC摄像头
    使用Unity的50个建议
    Unity3d流光效果
    unity3d中的Quaternion.LookRotation
    Unity3D中可重载虚函数的总结
  • 原文地址:https://www.cnblogs.com/python-way/p/6697023.html
Copyright © 2011-2022 走看看