设为首页 收藏本站
查看: 1385|回复: 0

[经验分享] Saltstack常见模块案例分析

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-18 08:58:33 | 显示全部楼层 |阅读模式
简介: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这台机器进行操作)
1
2
Master:10.0.4.52 CentOS release 6.5 (Final)
Slave:10.0.4.53 CentOS release 6.5 (Final)



模块一:cmd模块(实现远程的命令行调用执行)
1
2
3
4
5
6
7
8
9
10
# 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操作)
1
2
3
4
5
6
7
8
9
10
# 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模块(被控主机文件常见操作,包括文件读写、权限、查找、校验等)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 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模块(返回被控主机网络信息)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#  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.iyunv.com      #ping域名
slave:
    PING sq.dns.iyunv.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.iyunv.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.iyunv.com 80     #测试连接到主机特定的端口上。
slave:
    ----------
    comment:
        Successfully connected to www.iyunv.com (120.55.239.108) on tcp port 80
    result:
        True

#  salt 'slave' network.dig www.iyunv.com    #查询域名DNS包括NS记录,A记录,MX记录等相关信息.
slave:

    ................................
    ;www.iyunv.com.                     IN      A

    ;; ANSWER SECTION:
    www.iyunv.com.              600     IN      CNAME   web.dns.iyunv.com.
    web.dns.iyunv.com.  600     IN      A       120.55.239.108

    ................................




模块五:pkg包管理模块(被控主机程序包管理)
1
2
# salt '*' pkg.install nmap          #安装nmap工具,pkg.install后面加你想要安装的软件名。
# salt '*' pkg.file_list nmap        #查看nmap的文件列表



模块六:service 服务模块(被控主机程序包服务管理)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 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数据控制)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 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)
1
#  salt ‘slave‘ state.highstate   #对minion执行top.sls,这条命令比较重要。



模块九:status模块(返回minion端的各种状态数据)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# 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




好了,先写到这里,后期再继续更新更多的模块的基本使用的方法。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-218472-1-1.html 上篇帖子: salt-stack安装 下篇帖子: salt-stack安装redis
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表