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使用