• linux


    运维软件saltstack

    早期运维人员会根据自己的生产环境来写特定脚本完成大量重复性工作,这些脚本复杂且难以维护。系统管理员面临的问题主要是1、系统配置管理,2、远程执行命令,因此诞生了很多开源软件,系统维护方面有fabric、puppet、chef、ansible、saltstack等,这些软件擅长维护系统状态或方便的对大量主机进行批量的命令执行。

      salt灵活性强大,可以进行大规模部署,也能进行小规模的系统部署。salt的设计架构适用于任意数量的服务器,从少量本地网络系统到跨越数个数据中心,拓扑架构都是c/s模型,配置简单。

      不管是几台、几百台、几千台服务器,都可以使用salt在一个中心节点上进行管控,灵活定位任意服务器子集来运行命令。 

      Salt是python编写的,支持用户通过python自定义功能模块,也提供了大量的python API接口,用户可以根据需要进行简单快速的扩展

    安装使用流程

    1. salt安装服务器环境

       准备两台机器
       192.168.11.250  master端(主人,主机名)
       
       192.168.11.167  minion端  (奴隶,主机名  )
      
    2. 两台机器配置hosts文件,用于加速域名解析,以及分别安装 salt-master 和salt-minion软件

       服务端:vim /etc/hosts 
       192.168.11.167  s17slave
       192.168.11.250 s17master
        
       客户端:同样 vim /etc/hosts 
       192.168.11.167  s17slave
       192.168.11.250 s17master
      
    3. 分别安装软件

       安装master服务端
       
       yum 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: s17master
    master_port: 4506
    user: root
    id: s17slave
    acceptance_wait_time: 10
    log_file: /var/log/salt/minion
    

    6.分别开启 salt-master salt-minion,查看秘钥接收情况

    systemctl start salt-master
    systemctl start salt-minion
    
    salt-key * #查看所有秘钥情况
    
    salt-key -a  秘钥名  #单独的接收一个秘钥信息
    
    #秘钥接收后,就被管控了
    #让s17master这台机器,执行一条命令
    salt  "s17slave"  cmd.run  "touch /tmp/大烧饼.txt " 
    
    1. 检查两条秘钥情况

       在主执行
       salt-key -f s17slave
      
       在从执行
       salt-call --local key.finger
      
      
       salt-key
       只有Master接受了Minion Key后,才能进行管理。具体的认证命令为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自动接受请求
    

    检测从机器是否存活

    salt "*"  test.ping
    

    salt的命令参数格式

    salt命令 参数 目标 salt模块的函数 远程执行的参数
    

    返回值的格式替换

    salt --out=json "*" cmd.run  "hostname"
    

    返回yaml的语法格式

    salt --out=yaml "*" cmd.run  "hostname"
    

    远程安装nginx

    salt "*" pkg.install "nginx"
    salt "*" pkg.remove  "nginx"
    

    yaml语法学习

    {
        "s17":{
            "男同学":["带劲","虎牙","股价为"],
            "女同学":["卜老师","于建才","湿老师"]
                }
    }
    
    yaml语法转换如下
    
    "s17":
        "男同学":
          - "带劲"
          - "虎牙"
          - "股价为"
        "女同学":
          - "嫖老师"
          - "于建才"
          - "股价为"
    

    salt数据管理之grains

    salt 's17slave' grains.items
    
    
    salt 's17slave' grains.item  ipv4  #单独找出ipv4的信息
    

    远程关机

    local.cmd('*','cmd.run',['poweroff'])
  • 相关阅读:
    soj#547 bzoj5046 分糖果游戏
    soj#551 loj#2833 帐篷
    nb哒LCA
    soj#532 set p3175
    p4042 [AHOI2014/JSOI2014]骑士游戏
    p1501 [国家集训队]Tree II
    908G New Year and Original Order
    908D New Year and Arbitrary Arrangement
    EZOJ #258
    EZOJ #257
  • 原文地址:https://www.cnblogs.com/konghui/p/10533714.html
Copyright © 2020-2023  润新知