经常需要在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脚本的方式了。
[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
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
[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
原文:https://blog.51cto.com/magic3/2583246