• 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
  • 相关阅读:
    leetcode第9题判断回文数
    leetcode整数反转第七题
    leetcode刷题两数之和
    找工作之旅
    C#和.Ne学习第五天
    C#和.Ne学习第四天
    C#和.Ne学习第三天
    C#和.Ne学习第二天
    C#和.Ne学习第一天
    从今天开始正事学习C#和.Net了
  • 原文地址:https://www.cnblogs.com/OrcinusOrca/p/14767070.html
Copyright © 2020-2023  润新知