SaltStack batch operation of Windows

1. Basic Environment

[root@BJ-SaltStack-Node1 ~]#  cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
[root@BJ-SaltStack-Node1 ~]# python --version
Python 2.7.5

Second, SaltSatck installation
can be done in full accordance with official documents.
https://repo.saltstack.com/2018.3.html#rhel

3. Master configuration file

The default configuration can work normally.

[root@BJ-SaltStack-Node1 ~]# cat /etc/salt/master  | grep -v ^# |grep -v ^$
  default_include: master.d/*.conf
  file_roots:
    base:
      - /srv/salt
    dev:
      - /srv/salt/dev/services
      - /srv/salt/dev/states
    prod:
      - /srv/salt/prod/services
      - /srv/salt/prod/states

The salt-minion installation is omitted.

4. Operate windows through cmd module

1. First look at the methods included in the cmd module

[root@BJ-SaltStack-Node1 ~]# salt 'BJ-WJ-T-DCS-01' sys.list_functions cmd 
BJ-WJ-T-DCS-01:
    - 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
    - cmd.win_runas

2. Look at the usage of related methods

#如
salt 'BJ-WJ-T-DCS-01' sys.doc cmd.run 

salt 'BJ-WJ-T-DCS-01' sys.doc cmd.powershell

3. Test cmd.run and cmd.script

cmd.run

root@BJ-SaltStack-Node1 ~]# salt 'BJ-WJ-T-DCS-01' cmd.run 'hostname'  shell='powershell'
BJ-WJ-T-DCS-01:
    BJ-WJ-T-DCS-01

[root@BJ-SaltStack-Node1 scripts]# salt 'BJ-WJ-T-DCS-01' cmd.run 'get-hotfix -hfid KB4532931'  shell='powershell'
BJ-WJ-T-DCS-01:

    Source        Description      HotFixID      InstalledBy          InstalledOn  
    ------        -----------      --------      -----------          -----------  
    BJ-WJ-T-DC... Update           KB4532931     NT AUTHORITY\SYSTEM  2020/4/10 ...

cmd.script

#脚本内容,获取指定kb的安装时间
[root@BJ-SaltStack-Node1 scripts]# cat get_hotfix.ps1 
 $a = Get-HotFix  | Where-Object {$_.HotFixid -eq "KB4532931"}

 $a.InstalledOn

 #用salt 执行
 [root@BJ-SaltStack-Node1 scripts]# salt 'BJ-WJ-T-DCS-01' cmd.script salt://scripts/get_hotfix.ps1 shell='powershell'
BJ-WJ-T-DCS-01:
    ----------
    pid:
        3916
    retcode:
        0
    stderr:
    stdout:

        2020?4?10? 0:00:00

V. Batch operation

The simplest group can be defined:

[root@BJ-SaltStack-Node1 scripts]# cat /etc/salt/master.d/nodegroups.conf 
nodegroups:
  jump_win: 'L@BJ-WJ-Jump-01,BJ-WJ-Jump-02,BJ-DX-JumpLS-01'
  demo: 'L@BJ-WJ-T-DCS-01,BJ-WJ-T-DCS-02'

Then perform batch operations on the group:

[root@BJ-SaltStack-Node1 scripts]#  salt -N demo cmd.run 'ipconfig ' shell='powershell'
BJ-WJ-T-DCS-01:

    Windows IP Configuration

    Ethernet adapter 以太网:

       Connection-specific DNS Suffix  . : 
       IPv4 Address. . . . . . . . . . . : 172.16.7.54
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       Default Gateway . . . . . . . . . : 172.16.7.1

    Tunnel adapter isatap.{77A1A005-DE37-488B-A1E7-98CDB838E01E}:

       Media State . . . . . . . . . . . : Media disconnected
       Connection-specific DNS Suffix  . :
BJ-WJ-T-DCS-02:

    Windows IP Configuration

    Ethernet adapter 以太网:

       Connection-specific DNS Suffix  . : 
       IPv4 Address. . . . . . . . . . . : 172.16.7.55
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       Default Gateway . . . . . . . . . : 172.16.7.1

    Tunnel adapter isatap.{2526DE3F-E74C-4175-B209-B15F924284BB}:

       Media State . . . . . . . . . . . : Media disconnected
       Connection-specific DNS Suffix  . :

Guess you like

Origin blog.51cto.com/magic3/2486409