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
相關文章
相關標籤/搜索