SaltStack常用的模块

Posted 码出未来_远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SaltStack常用的模块相关的知识,希望对你有一定的参考价值。

SaltStack常用的模块

SaltStack模块介绍

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

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

[root@master ~]# salt 'minion' sys.list_modules
minion:
    - acl
    - aliases
    - alternatives
    - ansible
    - archive
    - artifactory
    - baredoc
    - beacons
    - bigip
此处省略N行

查看指定module的所有function

[root@master ~]# salt 'minion' sys.list_functions cmd
minion:
    - 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@master ~]# salt 'minion' 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.

    CLI Example:

        salt '*' cmd.exec_code ruby 'puts "cheese"' 
...此处省略N行...

SaltStack默认也支持一次执行多个Module,Module之间通过逗号隔开,默认传参之间也是用逗号分隔,也支持指定传参分隔符号–args-separator=@即可

[root@master ~]# salt 'minion' test.echo,cmd.run,service.status test,date,salt-minion
minion:
    ----------
    cmd.run:
        Tue Jul  6 18:12:15 CST 2021
    service.status:
        True
    test.echo:
        test

SaltStack常用模块

SaltStack常用模块之network

network.active_tcp

返回所有活动的tcp连接

[root@master ~]# salt '*' network.active_tcp
minion:
    ----------
    0:
        ----------
        local_addr:
            192.168.207.137
        local_port:
            22
        remote_addr:
            192.168.207.1
        remote_port:
            57062
    1:
        ----------
        local_addr:
            192.168.207.137
        local_port:
            43948
        remote_addr:
            192.168.207.131
        remote_port:
            4505

network.calc_net

通过IP和子网掩码计算出网段

[root@master ~]# salt '*' network.calc_net 192.168.207.131 255.255.255.0
minion:
    192.168.207.0/24
[root@master ~]# salt '*' network.calc_net 192.168.207.131 255.255.255.240
minion:
    192.168.207.128/28

network.connect

测试minion至某一台服务器的网络是否连通

[root@master ~]# salt '*' network.connect baidu.com 80
minion:
    ----------
    comment:
        Successfully connected to baidu.com (220.181.38.148) on tcp port 80
    result:
        True

network.default_route

查看默认路由

[root@master ~]# salt '*' network.default_route
minion:
    |_
      ----------
      addr_family:
          inet
      destination:
          0.0.0.0
      flags:
          UG
      gateway:
          192.168.207.2
      interface:
          ens33
      netmask:
          0.0.0.0

network.get_fqdn

查看主机的fqdn(完全限定域名)

[root@master ~]# salt '*' network.get_fqdn
minion:
    minion

network.get_hostname

获取主机名

[root@master ~]# salt '*' network.get_hostname
minion:
    minion

network.get_route

查询到一个目标网络的路由信息

[root@master ~]# salt '*' network.get_route 192.168.207.155
minion:
    ----------
    destination:
        192.168.207.155
    gateway:
        None
    interface:
        ens33
    source:
        192.168.207.137

network.hw_addr

返回指定网卡的MAC地址

[root@master ~]# salt '*' network.hw_addr ens33
minion:
    00:0c:29:e1:7e:2b

network.ifacestartswith

从特定CIDR检索接口名称

[root@master ~]# salt '*' network.ifacestartswith 192.168;
minion:
    - ens33

network.in_subnet

判断当前主机是否在某一个网段内

[root@master ~]# salt '*' network.in_subnet 192.168.207.0/24 
minion:
    True

network.interface

返回指定网卡的信息

[root@master ~]# salt '*' network.interface ens33
minion:
    |_
      ----------
      address:
          192.168.207.137
      broadcast:
          192.168.207.255
      label:
          ens33
      netmask:
          255.255.255.0

network.interface_ip

返回指定网卡的IP地址

[root@master ~]# salt '*' network.interface_ip ens33
minion:
    192.168.207.137

network.interfaces

返回当前系统中所有的网卡信息

[root@master ~]# salt '*' network.interfaces
minion:
    ----------
    ens33:
        ----------
        hwaddr:
            00:0c:29:e1:7e:2b
        inet:
            |_
              ----------
              address:
                  192.168.207.137
              broadcast:
                  192.168.207.255
              label:
                  ens33
              netmask:
                  255.255.255.0
        inet6:
            |_
              ----------
              address:
                  fe80::d179:e52e:1aae:e40e
              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@master ~]# salt '*' network.ip_addrs
minion:
    - 192.168.207.137

network.netstat

返回所有打开的端口和状态

[root@master ~]# salt '*' network.netstat
minion:
    |_
      ----------
      inode:
          28756
      local-address:
          192.168.207.137%ens33:68
      program:
          NetworkManager
      proto:
       省略。。。

network.ping

使用ping命令测试到某主机的连通性

[root@master ~]# salt '*' network.ping baidu.com
minion:
    PING baidu.com (220.181.38.148) 56(84) bytes of data.
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=48.4 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=55.3 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=47.8 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=54.4 ms
    
    --- baidu.com ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3004ms
    rtt min/avg/max/mdev = 47.757/51.436/55.254/3.406 ms

network.reverse_ip

返回一个指定的IP地址的反向地址

[root@master ~]# salt '*' network.reverse_ip 192.168.207.130 
minion:
    130.207.168.192.in-addr.arpa

SaltStack常用模块之service

service.available

判断指定的服务是否可用

[root@master ~]# salt '*' service.available sshd
minion:
    True
[root@master ~]# salt '*' service.available tomcat
minion:
    False

service.get_all

获取所有正在运行的服务

[root@master ~]# salt '*' service.get_all
minion:
    - NetworkManager
    - NetworkManager-dispatcher
    - NetworkManager-wait-online
    - auditd
    - autovt@
省略。。。

service.disabled

检查指定服务是否开机不自动启动

[root@master ~]# salt '*' service.disabled sshd
minion:
    False

service.enabled

检查指定服务是否开机自动启动

[root@master ~]# salt '*' service.enabled sshd
minion:
    True

service.disable

设置指定服务开机不自动启动

[root@master ~]# salt '*' service.disable httpd
minion:
    True

service.enable

设置指定服务开机自动启动

[root@master ~]# salt '*' service.enable sshd
minion:
    True
[root@master ~]# salt '*' service.enabled sshd
minion:
    True

service.reload

重新加载指定服务

[root@master ~]# salt '*' service.reload httpd
minion:
    True

service.stop

停止指定服务

[root@master ~]# salt '*' service.stop httpd
minion:
    True

service.start

启动指定服务

[root@master ~]# salt '*' service.start httpd
minion:
    True

service.restart

重启指定服务

[root@master ~]# salt '*' service.restart httpd
minion:
    True

service.status

查看指定服务的状态

[root@master ~]# salt '*' service.status httpd
minion:
    True

SaltStack常用模块之pkg

pkg.download

只下载软件包但不安装
此功能将会下载指定的软件包,但是需要在minion端安装yum-utils,可以使用 cmd.run 进行远程安装

[root@master ~]# salt '*' pkg.download nginx
minion:
    ----------
    nginx:
        /var/cache/yum/packages/nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm			//下载好的软件放在这里

pkg.file_list

列出指定包或系统中已安装的所有包的文件

//列出已安装的apache软件包提供的所有文件
[root@master ~]# salt '*' pkg.file_list salt
...

        - /usr/share/fish/vendor_functions.d/salt-run.fish
        - /usr/share/fish/vendor_functions.d/salt-syndic.fish
        - /usr/share/fish/vendor_functions.d/salt.fish
        - /usr/share/fish/ven......
//当不提供参数时,将会列出当前系统中所有已安装软件的文件列表
[root@master ~]# salt '*' pkg.file_list
...

pkg.group_info

查看包组的信息

[root@master ~]# salt '*' pkg.group_info 'Development Tools'
minion:
    ----------
    conditional:
    default:
        - asciidoc
        - byacc
        - ctags
        - diffstat
        - elfutils-libelf-devel
        - git
        - intltool
        - jna
...

pkg.group_list

列出系统中所有的包组

[root@master ~]# salt '*' pkg.group_list
minion:
    ----------
    available:
        - Backup Client
        - base-x
        - Conflicts AppStream
        - Container Management
        - Debugging Tools
        - Desktop Debugging and Performance Tools
        - .NET Core Development
        - FTP Server
        - GNOME Applications
        - Graphics Creation Tools
        - Guest Agents
        - Guest Desktop Agents
        - Input Methods
        - Internet Applications
        - Internet Browser
        - Java Platform
        - Legacy X Window System Compatibility
        - Multimedia
        - Office Suite and Productivity
        - Atomic Host ostree support
        - KVM platform specific packages
        - Hyper-v platform specific packages
        - Printing Client
        - Remote Desktop Clients
        - RPM Development Tools
        - TeX formatting system
        - Virtualization Client
        - Virtualization Hypervisor
        - Virtualization Platform
        - Virtualization Tools
        - Basic Web Server
        - Additional Development
        - Anaconda tools
        - Base
        - Conflicts BaseOS
        - Development Tools
        - Dial-up Networking Support
        - File and Storage Server
        - Fonts
        - GNOME
        - Graphical Administration Tools
        - Hardware Monitoring Utilities
        - Hardware Support
        - Headless Management
        - Infiniband Support
        - Large Systems Performance
        - Legacy UNIX Compatibility
        - Mail Server
        - Mainframe Access
        - Network File System Client
        - Network Servers
        - Networking Tools
        - Common NetworkManager submodules
        - Performance Tools
        - Platform Development
        - Python Web
.....
        - Custom Operating System
    available languages:
        ----------
    installed:
        - VMware platform specific packages
        - Core
    installed environments:
        - Minimal Install

pkg.install

安装软件

[root@master ~]# salt '*' pkg.install tree
minion:
    ----------
    tree:
        ----------
        new:
            1.7.0-15.el8
        old:

pkg.list_downloaded

列出已下载到本地的软件包

[root@master ~]# salt '*' pkg.list_downloaded

pkg.list_pkgs

以字典的方式列出当前已安装的软件包

[root@master ~]# salt '*' pkg.group_list
minion:
    ----------
    available:
        - Backup Client
        - base-x
        - Conflicts AppStream
        - Container Management
        - Debugging Tools
        - Desktop Debugging and Performance Tools
        - .NET Core Development
...

pkg.owner

列出指定文件是由哪个包提供的

[root@master ~]# salt '*' pkg.owner /usr/sbin/accessdb
minion:
    man-db

pkg.remove

卸载指定软件

[root@master ~]# salt '*' cmd.run 'rpm -qa|grep tree'
minion:
    tree-1.7.0-15.el8.x86_64

pkg.upgrade

升级系统中所有的软件包或升级指定的软件包

[root@master ~]# salt '*' pkg.upgrade name=openssl
minion:
    ----------
    openssl:
        ----------
        new:
            1:1.1.1k-1.el8
        old:
            1:1.1.1g-12.el8_3
    openssl-libs:
        ----------
        new:
            1:1.1.1k-1.el8
        old:
            1:1.1.1g-12.el8_3

SaltStack常用模块之state

state.show_highstate

显示当前系统中有哪些高级状态

[root@master nginx]# salt 'minion' state.sls web.nginx.install
minion:
----------
          ID: nginx-install
    Function: pkg.installed
        Name: nginx
      Result: True
     Comment: The following packages were installed/updated: nginx
     Started: 22:13:51.451034
    Duration: 19264.591 ms
     Changes:   
              ----------
              dejavu-fonts-common:
                  ----------
                  new:
                      2.35-7.el8
                  old:
              dejavu-sans-fonts:
                  ----------
                  new:
                      2.35-7.el8
                  old:
              fontconfig:
                  ----------
                  new:
                      2.13.1-3.el8
                  old:
              fontpackages-filesystem:
                  ----------
                  new:
                      1.44-22.el8
                  old:
              gd:
                  ----------
                  new:
                      2.2.5-7.el8
                  old:
              jbigkit-libs:
                  ----------
                  new:
                      2.1-14.el8
                  old:
              libX11:
                  ----------
                  new:
                      1.6.8-4.el8
                  old:
              libX11-common:
                  ----------
                  new:
                      1.6.8-4.el8
                  old:
              libXau:
                  ----------
                  new:
                      1.0.9-3.el8
                  old:
              libXpm:
                  ----------
                  new:
                      3.5.12-8.el8
                  old:
              libjpeg-turbo:
                  ----------
                  new:
                      1.5.3-10.el8
                  old:
              libtiff:
                  ----------
                  new:
                      4.0.9-20.el8
                  old:
              libwebp:
                  ----------
                  new:
                      1.0.0-5.el8
                  old:
              libxcb:
                  ----------
                  new:
                      1.13.1-1.el8
                  old:
              nginx:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              nginx-all-modules:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              nginx-filesystem:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              nginx-mod-http-image-filter:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              nginx-mod-http-perl:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              nginx-mod-http-xslt-filter:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              nginx-mod-mail:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              nginx-mod-stream:
                  ----------
                  new:
                      1:1.14.1-9.module_el8.0.0+184+e34fea82
                  old:
              perl-Carp:
                  ----------
                  new:
                      1.42-396.el8
                  old:
              perl-Data-Dumper:
                  ----------
                  new:
                      2.167-399.el8
                  old:
              perl-Digest:
                  ----------
                  new:
                      1.17-395.el8
                  old:
              perl-Digest-MD5:
                  ----------
                  new:
                      2.55-396.el8
                  old:
              perl-Encode:
                  ----------
                  new:
                      4:2.97-3.el8
                  old:
              perl-Errno:
                  ----------
                  new:
                      1.28-420.el8
                  old:
              perl-Exporter:
                  ----------
                  new:
                      5.72-396.el8
                  old:
              perl-File-Path:
                  ----------
                  new:
                      2.15-2.el8
                  old:
              perl-File-Temp:
                  ----------
                  new:
                      0.230.600-1.el8
                  old:
              perl-Getopt-Long:
                  ----------
                  new:
                      1:2.50-4.el8
                  old:
              perl-HTTP-Tiny:
                  ----------
                  new:
                      0.074-1.el8
                  old:
              perl-IO:
                  ----------
                  new:
                      1.38-420.el8
                  old:
              perl-IO-Socket-IP:
                  ----------
                  new:
                      0.39-5.el8
                  old:
              perl-IO-Socket-SSL:
                  ----------
                  new:
                      2.066-4.module_el8.4.0+517+be1595ff
                  old:
              perl-MIME-Base64:
                  ----------
                  new:
                      3.15-396.el8
                  old:
              perl-Mozilla-CA:
                  ----------
                  new:
                      20160104-7.module_el8.3.0+416+dee7bcef
                  old:
              perl-Net-SSLeay:
                  ----------
                  new:
                      1.88-1.module_el8.4.0+517+be1595ff
                  old:
              perl-PathTools:
                  ----------
                  new:
                      3.74-1.el8
                  old:
              perl-Pod-Escapes:
                  ----------
                  new:
                      1:1.07-395.el8
                  old:
              perl-Pod-Perldoc:
                  ----------
                  new:
                      3.28-396.el8
                  old:
              perl-Pod-Simple:
                  ----------
                  new:
                      1:3.35-395.el8
                  old:
              perl-Pod-Usage:
                  ----------
                  new:
                      4:1.69-395.el8
                  old:
              perl-Scalar-List-Utils:
                  ----------
                  new:
                      3:1.49-2.el8
                  old:
              perl-Socket:
                  ----------
                  new:
                      4:2.027-3.el8
                  old:
              perl-Storable:
                  ----------
                  new:
                      1:3.11-3.el8
                  old:
              perl-Term-ANSIColor:
                  ----------
                  new:
                      4.06-396.el8
                  old:
              perl-Term-Cap:
                  ----------
                  new:
                      1.17-395.el8
                  old:
              perl-Text-ParseWords:
                  ----------
                  new:
                      3.30-395.el8
                  old:
              perl-Text-Tabs+Wrap:
                  ----------
                  new:
                      2013.0523-395.el8
                  old:
              perl-Time-Local:
                  ----------
                  new:
                      1:1.280-1.el8
                  old:
              perl-URI:
                  ----------
                  new:
                      1.73-3.el8
          ...
         

state.highstate

执行高级状态

[root@master nginx]# salt '*' state.highstate web.nginx.install
minion:
----------
          ID: nginx-install
    Function: pkg.installed
        Name: nginx
      Result: True
     Comment: All specified packages are already installed
     Started: 22:15:23.665768
    Duration: 599.167 ms
     Changes:   
----------
          ID: nginx-service
    Function: service.running
        Name: nginx
      Result: True
     Comment: The service nginx is already running
     Started: 22:15:24.266728
    Duration: 39.898 ms
     Changes:   

Summary for minion
------------
Succeeded: 2
Failed:    0
------------
Total states run:     2
Total run time: 639.065 ms

state.show_state_usage

显示当前系统中的高级状态执行情况

[root@master nginx]# salt '*' state.show_state_usage
minion:
    The minion function caused an exception: Traceback (most recent call last):
      File "/usr/lib/python3.6/site-packages/salt/minion.py", line 1905, in _thread_return
        function_name, function_args, executors, opts, data
      File "/usr/lib/python3.6/site-packages/salt/minion.py", line 1861, in _execute_job_function
        return_data = self.executors[fname](opts, data, func, args, kwargs)
      File "/usr/lib/python3.6/site-packages/salt/loader.py", line 1241, in __call__
        return self.loader.run(run_func, *args, **kwargs)
      File "/usr/lib/python3.6/site-packages/salt/loader.py", line 2274, in run
        return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
      File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
        return callable(*args, **kwargs)
      File "/usr/lib/python3.6/site-packages/salt/loader.py", line 2289, in _run_as
        return _func_or_method(*args, **kwargs)
      File "/usr/lib/python3.6/site-packages/salt/executors/direct_call.py", line 12, in execute
        return func(*args, **kwargs)
      File "/usr/lib/python3.6/site-packages/salt/loader.py", line 1241, in __call__
        return self.loader.run(run_func, *args, **kwargs)
      File "/usr/lib/python3.6/site-packages/salt/loader.py", line 2274, in run
        return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
      File "/usr/lib/python3.6/site-packages/contextvars/__init__.py", line 38, in run
        return callable(*args, **kwargs)
      File "/usr/lib/python3.6/site-packages/salt/loader.py", line 2289, in _run_as
        return _func_or_method(*args, **kwargs)
      File "/usr/lib/python3.6/site-packages/salt/modules/state.py", line 1649, in show_state_usage
        ret = st_.compile_state_usage()
      File "/usr/lib/python3.6/site-packages/salt/state.py", line 4586, in compile_state_usage
        for saltenv, states in self.avail.items():
      File "/usr/lib/python3.6/site-packages/salt/state.py", line 3448, in items
        for saltenv, states in self._avail:
    ValueError: too many values to unpack (expected 2)
ERROR: Minions returned with non-zero exit code

state.show_top

返回minion将用于highstate的顶级数据

[root@master nginx]# salt '*' state.show_top
minion:
    ----------
    base:
        - web.nginx.install

state.top

执行指定的top file,而不是默认的

[root@master base]# salt '*' state.top top.sls
minion:
----------
          ID: nginx-install
    Function: pkg.installed
        Name: nginx
      Result: True
     Comment: All specified packages are already installed
     Started: 22:18:21.944293
    Duration: 605.45 ms
     Changes:   
----------
          ID: nginx-service
    Function: service.running
        Name: nginx
      Result: True
     Comment: The service nginx is already running
     Started: 22:18:22.551414
    Duration: 39.368 ms
     Changes:   

Summary for minion
------------
Succeeded: 2
Failed:    0
------------
Total states run:     2
Total run time: 644.818 ms

state.show_sls

显示 master 上特定sls或sls文件列表中的状态数据

[root@master base]# salt '*' state.show_sls web.nginx.install
minion:
    ----------
    nginx-install:
        ----------
        __env__:
            base
        __sls__:
            web.nginx.install
        pkg:
            |_
              ----------
              name:
                  nginx
            - installed
            |_
              ----------
              order:
                  10000
    nginx-service:
        ----------
        __env__:
            base
        __sls__:
            web.nginx.install
        service:
            |_
              ----------
              name:
                  nginx
            |_
              ----------
              enable:
                  True
            - running
            |_
              ----------
              order:
                  10001

SaltStack常用模块之salt-cp

salt-cp能够很方便的把 master 上的文件批量传到 minion上

//拷贝单个文件到目标主机的/usr/src目录下
[root@master ~]# salt-cp '*' /root/123 /usr/src/
minion:
    ----------
    /usr/src/123:
        True
[root@minion ~]# cd /usr/src/
[root@minion src]# ls
123  debug  kernels
[root@minion src]# cat 123 
asdasdassavasv


设置远程文件权限

[root@master base]# salt minion file.set_mode /usr/src/123 755
minion:
    0755

添加用户

[root@master ~]# salt '*' user.add haha
minion:
    True
#创建用户时指定shell
[root@master ~]# salt '*' user.add test shell=/sbin/nologin 
minion1:
    True
#创建用户指定不创建家目录
[root@master ~]# salt '*' user.add test1 createhome=False
minion1:
    True
[root@minion1 ~]# ls /home/
haha  test
#创建用户时指定附加组
[root@master ~]# salt '*' user.add test2 groups=nginx
minion1:
    True


删除用户

[root@master ~]# salt '*' user.delete haha remove=True
minion:
    True
[root@master ~]# salt '*' cmd.run 'id haha'
minion:
    id: 'haha': no such user
ERROR: Minions returned with non-zero exit code

显示用户密码信息

[root@master user]# salt 'minion' shadow.info root
minion:
    ----------
    expire:
        -1
    inact:
        -1
    lstchg:
        -1
    max:
        99999
    min:
        0
    name:
        root
    passwd:
        $6$lW90D5xvLyWpxLd3$9Fe4R.KNrQ6g6xI4hPoCLcbb2D2haQhRs4TyzHdPWGyIdRiX5HQ046r.1zaosh/lETzbnq3fkjGLfzwoEXisv.
    warn:
        7

查看用户信息

[root@master user]# salt 'minion' user.list_users
minion:
    - adm
    - bin
    - daemon
    - dbus
    - ftp
    - games
    - halt
    - lp
    - mail
    - nginx
    - nobody
    - operator
    - polkitd
    - root
    - shutdown
    - sshd
    - sssd
    - sync
    - systemd-coredump
    - systemd-resolve
    - tss
    - unbound

显示指定用户信息

[root@master user]# salt 'minion' user.info root
minion:
    ----------
    fullname:
        root
    gid:
        0
    groups:
        - root
    home:
        /root
    homephone:
    name:
        root
    other:
    passwd:
        x
    roomnumber:
    shell:
        /bin/bash
    uid:
        0
    workphone:

显示用户密码信息

[root@master user]# salt 'minion' shadow.info root
minion:
    ----------
    expire:
        -1
    inact:
        -1
    lstchg:
        -1
    max:
        99999
    min:
        0
    name:
        root
    passwd:
        $6$lW90D5xvLyWpxLd3$9Fe4R.KNrQ6g6xI4hPoCLcbb2D2haQhRs4TyzHdPWGyIdRiX5HQ046r.1zaosh/lETzbnq3fkjGLfzwoEXisv.
    warn:
        7

SaltStack常用模块之cron

Saltstack module cron

[root@master ~]# salt '*' cron.write_cron_file root /tmp/new_cron
minion:
    True

cron.raw_cron

查看指定用户的计划任务

[root@master ~]# salt '*' cron.raw_cron root
minion:

cron.rm

删除指定用户的 cron 环境变量。

[root@master ~]# salt '*' cron.rm_job root /usr/local/weeklyminion:
    absent
[root@master ~]# salt '*' cron.rm_job root /usr/bin/foo dayweek=1
minion:
    absent

cron.list_tab

返回指定用户的crontab内容

[root@master ~]# salt '*' cron.list_tab root
minion:
    ----------
    crons:
    env:
    pre:
    special:

cron.write_cron_file_verbose

将文件内容写入用户的 crontab 并在出错时返回错误消息

[root@master ~]# salt '*' cron.write_cron_file_verbose root /tmp/new_cron
minion:
    ----------
    pid:
        17017
    retcode:
        0
    stderr:
    stdout:

cron.rm_env

删除指定用户的 cron 环境变量。

[root@master ~]# salt '*' cron.rm_env root MAILTO
minion:
    absent

cron.set_job

为指定用户设置 cron 作业。

[root@master ~]# salt '*' cron.set_job root '*' '*' '*' '*' 1 /usr/local/weekly
minion:
    new

cron.set_env

在 crontab 中设置环境变量。

[root@master ~]# salt '*' cron.set_env root MAILTO user@example.com
minion:
    new

cron.rm_special

删除指定用户的特殊 cron 作业

[root@master ~]# salt '*' cron.rm_special root /usr/bin/foo
minion:
    absent

cron.set_special

在 crontab 中设置一个特殊的命令

[root@master ~]# salt '*' cron.set_special root @hourly 'echo foobar'
minion:
    new

cron.rm_job

删除指定用户的 cron 作业。如果指定了任何日期/时间参数,则仅当指定的参数匹配时才会删除作业。

[root@master ~]# salt '*' cron.rm_job root /usr/local/weeklyminion:
    removed
[root@master ~]# salt '*' cron.rm_job root /usr/bin/foo dayweek=1
minion:
    absent

cron.ls

该函数是 的别名list_tab

返回指定用户的crontab内容

[root@master ~]# salt '*' cron.list_tab root
minion:
    ----------
    crons:
    env:
        |_
          ----------
          name:
              MAILTO
          value:
              user@example.com
    pre:
    special:
        |_
          ----------
          cmd:
              echo foobar
          comment:
              None
          commented:
              False
          identifier:
              None
          spec:
              @hourly

以上是关于SaltStack常用的模块的主要内容,如果未能解决你的问题,请参考以下文章

SaltStack常用的模块

SaltStack常用的模块

SaltStack之远程执行其它常用模块

SaltStack常用的模块续

SaltStack常用的模块续

SaltStack常用的模块