SaltStack常用的模块

本文介绍了SaltStack中常用的一些模块,包括network、service、pkg、state和file等,详细阐述了各个模块的功能,如网络测试、服务管理、软件包操作、状态管理和文件管理等,为SaltStack的日常操作提供了参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SaltStack常用的模块

SaltStack模块介绍

Module是日常使用SaltStack接触最多的一个组件,其用于管理对象操作,这也是SaltStack通过Push的方式进行管理的入口,比如我们日常简单的执行命令、查看包安装情况、查看服务运行情况等工作都是通过SaltStack Module来实现的。

当安装好Master和Minion包后,系统上会安装很多Module,大家可以通过以下命令查看支持的所有Module列表:

查看本机所有的模块 #只有一部分想要看所有模块去官网上查看

[root@server1 ~]# salt 'server1' sys.list_modulesserver1:
    - acl
    - aliases
    - alternatives
    - archive
    - artifactory
    - baredoc
    - beacons
    - bigip
    - btrfs
    - buildout
    - chroot
    - cloud
    - cmd
    - composer
    - config
    - consul
    - container_resource
    - cp
    - cron
    - cryptdev
    - data
    - defaults
    - devinfo
    - devmap
    - disk
    - django
    - dnsmasq
    - dnsutil
    - drbd
    - environ
    - ethtool
    - event
    - extfs
    - file
    - firewalld
    - freezer
    - gem
    - genesis
    - glassfish
    - gnome
    - google_chat
    - grafana4
    - grains
    - group
    - hashutil
    - helm
    - highstate_doc
    - hosts
    - http
    - hue
    - incron
    - ini
    - inspector
    - introspect
    - iosconfig
    - ip
    - ipset
    - iptables
    - jboss7
    - jboss7_cli
    - jinja
    - k8s
    - kernelpkg
    - key
    - keyboard
    - kmod
    - kubeadm
    - libcloud_compute
    - libcloud_dns
    - libcloud_loadbalancer
    - libcloud_storage
    - locale
    - locate
    - log
    - logrotate
    - lowpkg
    - lvm
    - mandrill
    - match
    - mattermost
    - mine
    - minion
    - modjk
    - mount
    - msteams
    - nagios_rpc
    - namecheap_domains
    - namecheap_domains_dns
    - namecheap_domains_ns
    - namecheap_ssl
    - namecheap_users
    - network
    - nexus
    - nftables
    - nova
    - nspawn
    - nxos
    - nxos_api
    - nxos_upgrade
    - openscap
    - openstack_config
    - opsgenie
    - out
    - pagerduty
    - pagerduty_util
    - pam
    - parallels
    - partition
    - peeringdb
    - pillar
    - pip
    - pkg
    - pkg_resource
    - ps
    - publish
    - pushover
    - pyenv
    - random
    - random_org
    - rbenv
    - rest_sample_utils
    - restartcheck
    - ret
    - rvm
    - s3
    - s6
    - salt_proxy
    - salt_version
    - saltcheck
    - saltutil
    - schedule
    - scsi
    - sdb
    - seed
    - serverdensity_device
    - service
    - shadow
    - slack
    - slsutil
    - smbios
    - smtp
    - solrcloud
    - sqlite3
    - ssh
    - state
    - status
    - statuspage
    - supervisord
    - sys
    - sysctl
    - sysfs
    - syslog_ng
    - system
    - telegram
    - telemetry
    - temp
    - test
    - timezone
    - tls
    - travisci
    - tuned
    - udev
    - uptime
    - user
    - vault
    - vbox_guest
    - virtualenv
    - vsphere
    - x509
    - xfs
    - xml
    - zabbix
    - zenoss

查看指定module的所有function

[root@server1 ~]# salt 'server1' sys.list_functions cmd
server1:
    - cmd.exec_code
    - cmd.exec_code_all
    - cmd.has_exec
    - cmd.powershell
    - cmd.powershell_all
    - cmd.retcode
    - cmd.run
    - cmd.run_all
    - cmd.run_bg
    - cmd.run_chroot
    - cmd.run_stderr
    - cmd.run_stdout
    - cmd.script
    - cmd.script_retcode
    - cmd.shell
    - cmd.shell_info
    - cmd.shells
    - cmd.tty
    - cmd.which
    - cmd.which_bin

查看指定module的用法

[root@server1 ~]# salt 'server1' sys.doc cmd
cmd.exec_code:

    Pass in two strings, the first naming the executable language, aka -
    python2, python3, ruby, perl, lua, etc. the second string containing
    the code you wish to execute. The stdout will be returned.

    All parameters from :mod:`cmd.run_all <salt.modules.cmdmod.run_all>` except python_shell can be used.

    CLI Example:

        salt '*' cmd.exec_code ruby 'puts "cheese"'
        salt '*' cmd.exec_code ruby 'puts "cheese"' args='["arg1", "arg2"]' env='{"FOO": "bar"}'
.......
.......

//SaltStack默认也支持一次执行多个Module,Module之间通过逗号隔开,默认传参之间也是用逗号分隔,

[root@server1 ~]# salt 'node1' test.echo,cmd.run,service.status  holle,hostname,salt-minion
node1:
    ----------
    cmd.run:
        node1
    service.status:
        True
    test.echo:
        holle

SaltStack常用模块

SaltStack常用模块之network

network.active_tcp 返回所有的活动连接
[root@server1 ~]# salt 'node1' network.active_tcp
node1:
    ----------
    0:
        ----------
        local_addr:
            192.168.244.135
        local_port:
            33806
        remote_addr:
            192.168.244.131
        remote_port:
            4505
    1:
        ----------
        local_addr:
            192.168.244.135
        local_port:
            22
        remote_addr:
            192.168.244.1
        remote_port:
            52918

network.calc_net 通过IP和子网掩码计算出网段
[root@server1 ~]# salt 'node1' network.calc_net  192.168.244.0 255.255.255.0
node1:
    192.168.244.0/24

network.connect 测试minion至某一台服务器的网络是否连通
[root@server1 ~]# salt 'node1' network.connect  baidu.com 80
node1:
    ----------
    comment:
        Successfully connected to baidu.com (220.181.38.148) on tcp port 80
    result:
        True

network.default_route 查看默认路由
[root@server1 ~]# salt 'node1' network.default_route
node1:
    |_
      ----------
      addr_family:
          inet
      destination:
          0.0.0.0
      flags:
          UG
      gateway:
          192.168.244.2
      interface:
          ens160
      netmask:
          0.0.0.0

network.get_fqdn 查看主机的fqdn(完全限定域名)
[root@server1 ~]# salt 'node1' network.get_fqdn
node1:
    node1

network.get_hostname 获取主机名
[root@server1 ~]# salt 'node1' network.get_hostname
node1:
    node1

network.get_route 查询到一个目标网络的路由信息
[root@server1 ~]# salt 'node1' network.get_route 192.168.244.2
node1:
    ----------
    destination:
        192.168.244.2
    gateway:
        None
    interface:
        ens160
    source:
        192.168.244.135

network.hw_addr 返回指定网卡的MAC地址
[root@server1 ~]# salt 'node1' network.hw_addr ens160
node1:
    00:0c:29:36:3e:51

network.ifacestartswith 从特定CIDR检索接口名称
[root@server1 ~]# salt 'node1' network.ifacestartswith 192.168
node1:
    - ens160

network.in_subnet 判断当前主机是否在某一个网段内
[root@server1 ~]# salt 'node1' network.in_subnet 192.168.69.0/24
node1:
    False
[root@server1 ~]# salt 'node1' network.in_subnet 192.168.244.0/24
node1:
    True

network.interface 返回指定网卡的信息
[root@server1 ~]# salt 'node1' network.interface ens160
node1:
    |_
      ----------
      address:
          192.168.244.135     #IP地址
      broadcast:
          192.168.244.255      #网关
      label:
          ens160            #网卡名
      netmask:
          255.255.255.0     #子网掩码

network.interface_ip 返回指定网卡的IP地址
[root@server1 ~]# salt 'node1' network.interface_ip ens160
node1:
    192.168.244.135

network.interfaces 返回当前系统中所有的网卡信息
[root@server1 ~]# salt 'node1' network.interfacesnode1:
    ----------
    ens160:
        ----------
        hwaddr:
            00:0c:29:36:3e:51
        inet:
            |_
              ----------
              address:
                  192.168.244.135
              broadcast:
                  192.168.244.255
              label:
                  ens160
              netmask:
                  255.255.255.0
        inet6:
            |_
              ----------
              address:
                  fe80::22a0:ac79:2d1a:18b7
              prefixlen:
                  64
              scope:
                  link
        up:
            True
    lo:
        ----------
        hwaddr:
            00:00:00:00:00:00
        inet:
            |_
              ----------
              address:
                  127.0.0.1
              broadcast:
                  None
              label:
                  lo
              netmask:
                  255.0.0.0
        inet6:
            |_
              ----------
              address:
                  ::1
              prefixlen:
                  128
              scope:
                  host
        up:
            True

network.ip_addrs 返回一个IPv4的地址列表

该函数将会忽略掉127.0.0.1的地址

[root@server1 ~]# salt 'node1' network.ip_addrs
node1:
    - 192.168.244.135

network.netstat 返回所有打开的端口和状态
[root@server1 ~]# salt 'node1' network.netstat
node1:
    |_
      ----------
      inode:
          25874
      local-address:
          127.0.0.1:323
      program:
          chronyd
      proto:
          udp
      recv-q:
          0
      remote-address:
          0.0.0.0:*
      send-q:
          0
      user:
          0
    |_
      ----------
      inode:
          25875
      local-address:
          [::1]:323
      program:
          chronyd
      proto:
          udp
      recv-q:
          0
      remote-address:
          [::]:*
      send-q:
          0
      user:
          0
    |_
      ----------
      inode:
          28970
      local-address:
          0.0.0.0:22
      program:
          sshd
      proto:
          tcp
      recv-q:
          0
      remote-address:
          0.0.0.0:*
      send-q:
          128
      state:
          LISTEN
      user:
          0
    |_
      ----------
      inode:
          32306
      local-address:
          192.168.244.135:33806
      program:
          salt-minion
      proto:
          tcp
      recv-q:
          0
      remote-address:
          192.168.244.131:4505
      send-q:
          0
      state:
          ESTABLISHED
      user:
          0
    |_
      ----------
      inode:
          0
      local-address:
          192.168.244.135:60566
      program:
      proto:
          tcp
      recv-q:
          0
      remote-address:
          192.168.244.131:4506
      send-q:
          0
      state:
          TIME-WAIT
      user:
          0
    |_
      ----------
      inode:
          1121659
      local-address:
          192.168.244.135:22
      program:
          sshd
      proto:
          tcp
      recv-q:
          0
      remote-address:
          192.168.244.1:52918
      send-q:
          0
      state:
          ESTABLISHED
      user:
          0
    |_
      ----------
      inode:
          28972
      local-address:
          [::]:22
      program:
          sshd
      proto:
          tcp
      recv-q:
          0
      remote-address:
          [::]:*
      send-q:
          128
      state:
          LISTEN
      user:
          0
    |_
      ----------
      inode:
          29140
      local-address:
          *:80
      program:
          httpd
      proto:
          tcp
      recv-q:
          0
      remote-address:
          *:*
      send-q:
          128
      state:
          LISTEN
      user:
          0

network.ping 使用ping命令测试到某主机的连通性
[root@server1 ~]# salt 'node1' network.ping 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值