Saltstack远程执行学习笔记:模块module使用 – 21运维
通知: .-...

Saltstack远程执行学习笔记:模块module使用

saltstack 21运维 7396浏览 0评论

Module组件,经常使用saltStack接触使用最多的,多数操作都是基于组件来实现,主要用于管理对象操作的,也是SaltStack通过Push的方式进行管理的入口,比如我们日常简单的执行命令、查看包安装情况、查看服务运行情况等工作都是通过SaltStack Module来实现的。默认安装好Master和Minion包之后,系统上会安装很多Module,大家可以通过以下命令查看支持的所有Module列表。

1.查看所有module列表
比如我们查看aliserver支持的所有module组件列表的命令如下:

[root@Master pillar]# salt  -S  '115.29.249.0/24'  sys.list_modules
aliserver:
    - acl
    - aliases
    - alternatives
    - archive
    - artifactory
    - at
    - blockdev
    - bridge
    - btrfs
    - buildout
    - cloud
    - cmd
    - 此处省略N行

2.查看指定module的所有function方法
比如查看cmd 这个module的所有function的命令如下:

[root@Master pillar]# salt  -S  '115.29.249.0/24'  sys.list_functions cmd
aliserver:
    - cmd.exec_code
    - cmd.exec_code_all
    - cmd.has_exec
    - cmd.retcode
    - cmd.run
    - cmd.run_all
    - cmd.run_chroot
    - cmd.run_stderr
    - cmd.run_stdout
    - cmd.script
    - cmd.script_retcode
    - cmd.shell
    - cmd.shells
    - cmd.tty
    - cmd.which
    - cmd.which_bin

3.查看指定module用法 。这个非常重要。sys.doc
比如我们查看cmd module的详细用法与例子的命令如下:
salt  -S  ‘115.29.249.0/24’ sys.doc  cmd 建议加上| more,方便翻页查询。

省略N行
'cmd.run:'

    Execute the passed command and return the output as a string

    Note that ``env`` represents the environment variables for the command, and
    should be formatted as a dict, or a YAML string which resolves to a dict.

    Warning:
       此处省略
    CLI Example:

        salt '*' cmd.run "ls -l | awk '/foo/{print \$2}'"

    The template arg can be set to 'jinja' or another supported template
    engine to render the command arguments before execution.
    For example:

        salt '*' cmd.run template=jinja "ls -l /tmp/{{grains.id}} | awk '/foo/{print \$2}'"

    Specify an alternate shell with the shell parameter:
省略N行

saltstack也支持一次执行多个module,module之间用逗号隔开即可,默认的参数也是通过逗号隔开。比如查看下边的例子:

[root@Master pillar]# salt 'HK-VPN' test.echo,cmd.run,service.status  saltbook,hostname,salt-master
HK-VPN:
    ----------
    cmd.run:
        HK-VPN
    service.status:
        False
    test.echo:
        saltbook

备注:学习了基本了解以后,我们可以通过官网链接https://docs.saltstack.com/en/latest/salt-modindex.html  学习组件用法,比如network

[root@Master pillar]# salt 'HK-VPN' network.get_hostname
HK-VPN:
    HK-VPN
[root@Master pillar]# salt 'HK-VPN' network.interface  eth0
HK-VPN:
    |_
      ----------
      address:
          43.252.228.xxx
      broadcast:
          43.252.228.255
      label:
          eth0
      netmask:
          255.255.255.0
[root@Master pillar]# salt 'HK-VPN' network.ping  8.8.8.8
HK-VPN:
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=48 time=37.7 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=48 time=38.6 ms
    64 bytes from 8.8.8.8: icmp_seq=3 ttl=48 time=34.8 ms
    64 bytes from 8.8.8.8: icmp_seq=4 ttl=48 time=36.6 ms
    
    --- 8.8.8.8 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3043ms
    rtt min/avg/max/mdev = 34.848/36.962/38.669/1.434 ms

再来一个service比如

[root@Master pillar]# salt 'HK-VPN' service.available  nginxd
HK-VPN:
    True
[root@Master pillar]# salt 'HK-VPN' service.get_all
HK-VPN:
    - auditd
    - blk-availability
    - control-alt-delete
    - crond
    - halt
    - init-system-dbus
省略。。。。

如此,通过上边知识点我们基本可以知道了一个组件有多少,每个组件有多少个方法,而且每个方法我们怎么用(常用的还是要掌握一些,其他的根据需求自己看帮助或官网查询,建议官网查看,知识明了而且有案例)。

转载请注明:21运维 » Saltstack远程执行学习笔记:模块module使用

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址