SaltStack建立WIN定时任务计划

场景

常常须要在windows server上部署定时任务,可是面对大量的windows server,逐台操做效率过低。因此尝试经过SaltStack 去批量建立定时任务。shell

提案

一个定时任务一般包含好多内容,好比定时任务名称、触发器、执行策略、有效周期、间隔、用户、密码、电源选项等信息,可是目前并无发现PowerShell某个命令能够同时提供全面的设置,考虑到建立一个任务的复杂性,因此放弃使用脚本直接建立。
取而代之的是:手动建立好定时任务并导出为项xml文件,而后导入到其余windows server.windows

思路就有了2种:ide

SaltStack自己提供的模块导入。
SaltStack执行ps脚本导入。测试

实现

SaltStack提供了task模块,task模块提供了task.create_task_from_xml 功能。可是通过测试,在2018.3.5这个版本上是不能有效导入的。所以只能使用执行ps脚本的方式了。code

实现步骤

  • 手动建立定时任务,并导出。(略)
  • 将定时任务上传到salt(本例目录/srv/salt/sync_file/)。
[root@BJ-SaltStack-Node1 sync_file]# salt -L SOHO-Hyper-V02.im.com,SOHO-Hyper-v03.im.com cp.get_file salt://sync_file/count_hyperv-vm.xml c:\\

SOHO-Hyper-V02.im.com:
    c:\count_hyperv-vm.xml
SOHO-Hyper-v03.im.com:
    c:\count_hyperv-vm.xml
  • 将ps脚本上传到salt(本例目录/srv/salt/scripts/)

create_schedule.ps1 内容:server

[root@BJ-SaltStack-Node1 scripts]# cat /srv/salt/scripts/create_schedule.ps1 

$task_path = "C:\count_hyperv-vm.xml"

$taskArgs = @{
   User='user';
   Password='password'
   }
$taskname='Count_vm_to_Zabbix'
$xml=(Get-Content $task_path -Raw)

Register-ScheduledTask -Xml  $xml -TaskName $taskname @taskArgs
  • 经过salt执行ps,在目标机器群建立定时任务。
[root@BJ-SaltStack-Node1 scripts]# salt -L SOHO-Hyper-V02.im.com,SOHO-Hyper-v03.im.com cmd.script salt://scripts/create_schedule.ps1  shell='powershell'
SOHO-Hyper-V02.im.com:
    ----------
    pid:
        9556
    retcode:
        0
    stderr:
    stdout:

        TaskPath                                       TaskName                        
        --------                                       --------                        
        \                                              Count_vm_to_Zabbix
SOHO-Hyper-v03.im.com:
    ----------
    pid:
        2800
    retcode:
        0
    stderr:
    stdout:

        TaskPath                                       TaskName                        
        --------                                       --------                        
        \                                              Count_vm_to_Zabbix
[root@BJ-SaltStack-Node1 scripts]#

删除任务:xml

[root@BJ-SaltStack-Node1 scripts]# salt -L SOHO-Hyper-V02.im.com,SOHO-Hyper-v03.im.com  task.delete_task Count_vm_to_Zabbix
SOHO-Hyper-V02.im.com:
    True
SOHO-Hyper-v03.im.com:
    True
[root@BJ-SaltStack-Node1 scripts]# salt -L SOHO-Hyper-V02.im.com,SOHO-Hyper-v03.im.com task.list_tasks
SOHO-Hyper-V02.im.com:
    - Avira_Antivirus_Systray
    - Optimize Start Menu Cache Files-S-1-5-21-1573774230-1259464216-610769236-12897
    - Optimize Start Menu Cache Files-S-1-5-21-1573774230-1259464216-610769236-500
    - Optimize Start Menu Cache Files-S-1-5-21-4237194702-1109477010-2710635702-500
    - Zeus_Collection_Scheduled_Tasks
SOHO-Hyper-v03.im.com:
    - Avira_Antivirus_Systray
    - Optimize Start Menu Cache Files-S-1-5-21-1573774230-1259464216-610769236-12897
    - Optimize Start Menu Cache Files-S-1-5-21-1573774230-1259464216-610769236-500
    - Zeus_Collection_Scheduled_Tasks
相关文章
相关标签/搜索