常常須要在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
[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 內容: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
[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