首页 > Windows开发 > 详细

SaltStack创建WIN定时任务计划

时间:2021-01-06 22:23:53      阅读:33      评论:0      收藏:0      [点我收藏+]
场景

经常需要在windows server上部署定时任务,但是面对大量的windows server,逐台操作效率太低。所以尝试通过SaltStack 去批量创建定时任务。

提案

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

思路就有了2种:

SaltStack本身提供的模块导入。
SaltStack执行ps脚本导入。

实现

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

实现步骤

  • 手动创建定时任务,并导出。(略)
  • 将定时任务上传到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 内容:

[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]# 

删除任务:

[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

SaltStack创建WIN定时任务计划

原文:https://blog.51cto.com/magic3/2583246

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!