zoukankan      html  css  js  c++  java
  • SaltStack常见模块案例分析

    简介:

      SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、 python-msgpack和PyYAML等)构建。

      通过部署SaltStack环境,可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

    模块:Saltstack强大之处就是拥有众多模块,这些模块极大提高工作效率,而且还不断开发新的模块,这里就先列举一些常用模块的基本的应用,更多的模块和使用方法请参考官网:https://docs.saltstack.com/en/latest/ref/modules/all/

     

    实验环境:(为了节省篇幅,只对minion端slave这台机器进行操作)

    Master:10.0.4.52 CentOS release 7.5 (Final)
    Slave:10.0.4.53 CentOS release 7.5 (Final)
     

    模块一:cmd模块(实现远程的命令行调用执行)

    # salt 'slave' cmd.run 'uptime'        #可以远程调用Linux命令
    slave:
         11:47:36 up 14 days,  3:26,  0 users,  load average: 0.00, 0.00, 0.00
    
    # salt 'slave' cmd.run 'df -h'
    slave:
        Filesystem                        Size  Used Avail Use% Mounted on
        /dev/mapper/vg_localhost-lv_root   18G  3.0G   14G  19% /
        tmpfs                             940M   84K  940M   1% /dev/shm
        /dev/sda1                         485M   39M  421M   9% /boot
     

    模块二:cron模块(实现被控主机的crontab操作)

    # salt 'slave' cron.set_job root '*' '*/2' '*' '*' '*' 'ntpdate time.nist.gov >/dev/null 2>&1'#添加计划任务
    slave:
        new
    # salt 'slave' cron.raw_cron root       #查看minion端root的计划任务。
    slave:
        # Lines below here are managed by Salt, do not edit
        * */2 * * * ntpdate time.nist.gov >/dev/null 2>&1
    # salt 'slave' cron.rm_job root 'ntpdate time.nist.gov >/dev/null 2>&1' #删除root的计划任务
    slave:
        removed
     

    模块三:file模块(被控主机文件常见操作,包括文件读写、权限、查找、校验等)

    # salt 'slave' file.get_sum /etc/resolv.conf md5  #查看md5
    slave:
        025b620e25bbef5b53099ae9cdbb9d16
    # salt 'slave' file.stats /etc/resolv.conf        #查看文件属性。
    slave:
        ----------
        atime:
            1463387846.48
        ctime:
            1462759047.49
        gid:
            0
        group:
            root
        inode:
            135225
        mode:
            0644
        mtime:
            1462759047.49
        size:
            83
    ............................
    
    # salt 'slave' file.append /etc/motd   #给某个文件添加添加内容。
    > "With all thine offerings thou shalt offer salt." 
    > "Salt is what makes things taste bad when it isn't in them."
    slave:
        Wrote 2 lines to "/etc/motd"
    
    # salt  'slave' file.chown /data/1.txt root root  #修改文件用户和所属组
    slave:
        None
    
    # salt 'slave' file.copy /data/1.txt /tmp/1.txt   #将data目录下的1.txt文件复制到/tmp目录下
    slave:
        True
    
    # salt 'slave' file.find / type=f name=*.bak size=+10m #找出大于10M并且以.bak结尾的文件。
    slave:
        - /data/1.bak
        - /data/2.bak
    # salt 'slave' file.find / type=f name=*.bak size=+10m delete  #删除以.bak结尾而且大于10M的文件。
    
    # salt 'slave' file.mkdir /tmp/test    #在/tmp目录下创建test文件夹
     

    模块四:network模块(返回被控主机网络信息)

    #  salt '*' network.ip_addrs            #查看IP地址
    slave:
        - 10.0.4.53
    master:
        - 10.0.4.52
    #  salt 'slave' network.get_hostname     #取主机名
    slave:
        slave        
            
    #  salt 'slave' network.hw_addr eth0     #取MAC地址
    slave:
        00:0c:29:a3:cd:93        
        
    #  salt 'slave' network.interface eth0   #查看网卡的IP相关信息
    slave:
        |_
          ----------
          address:
              10.0.4.53
          broadcast:
              10.0.4.255
          label:
              eth0
          netmask:
              255.255.255.0    
    #  salt 'slave' network.ping blog.51cto.com      #ping域名
    slave:
        PING sq.dns.51cto.com (120.55.239.108) 56(84) bytes of data.
        64 bytes from 120.55.239.108: icmp_seq=1 ttl=40 time=32.8 ms
        64 bytes from 120.55.239.108: icmp_seq=2 ttl=40 time=32.7 ms
        64 bytes from 120.55.239.108: icmp_seq=3 ttl=40 time=32.8 ms
        64 bytes from 120.55.239.108: icmp_seq=4 ttl=40 time=32.6 ms
        
        --- sq.dns.51cto.com ping statistics ---
        4 packets transmitted, 4 received, 0% packet loss, time 3036ms
        rtt min/avg/max/mdev = 32.652/32.795/32.871/0.155 ms
    #  salt 'slave' network.connect www.51cto.com 80     #测试连接到主机特定的端口上。
    slave:
        ----------
        comment:
            Successfully connected to www.51cto.com (120.55.239.108) on tcp port 80
        result:
            True 
    
    #  salt 'slave' network.dig www.51cto.com    #查询域名DNS包括NS记录,A记录,MX记录等相关信息.
    slave:
        
        ................................
        ;www.51cto.com.                     IN      A
        
        ;; ANSWER SECTION:
        www.51cto.com.              600     IN      CNAME   web.dns.51cto.com.
        web.dns.51cto.com.  600     IN      A       120.55.239.108
        
        ................................
     

     

    模块五:pkg包管理模块(被控主机程序包管理)

    # salt '*' pkg.install nmap          #安装nmap工具,pkg.install后面加你想要安装的软件名。
    # salt '*' pkg.file_list nmap        #查看nmap的文件列表
     

    模块六:service 服务模块(被控主机程序包服务管理)

    # salt 'slave' service.enable nfs    #开启某个服务(nfs)。
    slave:
        True
    # salt 'slave' service.disable nfs   #关闭某个服务(nfs)。
    slave:
        True
    # salt 'slave' service.start nfs     #启动服务
    slave:
        True
    # salt 'slave' service.stop nfs      #关闭服务
    slave:
        True
    # salt 'slave' service.status nfs    #查看服务状态
    slave:
        True
     

    模块七:grain模块(grains数据控制)

    # salt 'slave' grains.item os        #查看OS
    slave: 
        ----------
        os:  
            CentOS
    
    # salt 'slave' grains.item os osrelease oscodename  #查看系统版本
    slave:
        ----------
        os:
            CentOS
        oscodename:
            Final
        osrelease:
            6.5
     

    模块八:state模块(管理minion state)

    #  salt ‘slave‘ state.highstate   #对minion执行top.sls,这条命令比较重要。
     

    模块九:status模块(返回minion端的各种状态数据)

    # salt 'slave' status.cpuinfo           #查看CPU信息。
    slave:
        ----------
        address sizes:
            40 bits physical, 48 bits virtual
        bogomips:
            3989.99
        cache size:
            18432 KB
        cache_alignment:
            64
      .....................................
      
    # salt 'slave' status.cpustats          #查看CPU使用情况。
    slave:
        ----------
        btime:
            1462234850
        cpu:
            ----------
            idle:
                121186157
            iowait:
                9437
            irq:
                43
            nice:
                954
            softirq:
                175
            steal:
       ...................................
    
    #  salt 'slave' status.diskusage          #返回磁盘使用情况。
    # salt 'slave' status.diskusage / /tmp    #返回根分区和/tmp分区的使用情况。
    slave:
        ----------
        /:
            ----------
            available:
                14365966336
            total:
                18503614464
        /tmp:
            ----------
            available:
                14365966336
            total:
                18503614464
    
    # salt 'slave' status.meminfo           #返回内存信息。
    slave:
        ----------
        Active:
            ----------
            unit:
                kB
            value:
                507084
        Active(anon):
            ----------
            unit:
                kB
            value:
                88684
        Active(file):
            ----------
            unit:
                kB
            value:
                418400
      ...............................
      
    # salt 'slave' status.loadavg            #返回平均负载值。
    slave:
        ----------
        1-min:
            0.0
        15-min:
            0.0
        5-min:
            0.0
  • 相关阅读:
    jvm基本结构和解析
    多态的意思
    java中对象的简单解读
    double类型和int类型的区别
    python 解析xml文件
    win10不能映射Ubuntu共享文件
    Qt程序打包
    Ubuntu boot分区文件误删,系统无法启动,怎么解
    ubuntu Boot空间不够问题“The volume boot has only 5.1MB disk space remaining”
    Ubuntu 分辨率更改 xrandr Failed to get size of gamma for output default
  • 原文地址:https://www.cnblogs.com/OrcinusOrca/p/14767070.html
Copyright © 2011-2022 走看看