iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
IT管理

OCS Inventory:開源資產管理解決方案系列 第 17

如何使用 OCS Inventory 代理程式遠端部署 MSI 應用程式

  • 分享至 

  • xImage
  •  

上一篇簡單地闡述 OCS Inventory 遠端部署的系統配置與運作原理,今天將教大家如何使用 OCS Inventory 代理程式遠端安裝 MSI 應用程式。

OCS Inventory 透過 PROLOG_FREQ 來控制 Windows 代理程式運行的頻率,預設代理程式將每隔 24 小時與 OCS Inventory 聯繫一次。

由於我們想要套件早點生效以進行部署,將 PROLOG_FREQ 設定為 1 小時。即為指派遠端部署後一小時便會生效並開始下載及安裝。

下載 MSI 應用程式
我們使用 Firefox 作為演示範例
https://support.mozilla.org/en-US/kb/deploy-firefox-msi-installers

建立套件
先到 Deployment 點選 Build

作業系統選擇 Windows

選擇 Install MSI 應用程式

安裝 MSI 應用程式

  • Package Name : 填入 Package Name (不可重複)
  • Description : 填入 Description
  • MSI File : 上傳 Firefox Setup 111.0.1.msi
  • Arguments : MSI command line arguments (Optionnal)

預設參數

  • Priority : 5
  • Action : Execute
  • Protocole : HTTP
  • Command : msiexec /i application.msi { Arguments }
  • Notify User : No
  • Notify can abort : No
  • Notify can delay : No
  • Need done action : No

點選 Validate,顯示套件建立成功。

由於我們將 DOWNLOAD_RATIO_FRAG 設定為 5MB,所以套件被自動切割成 12 個片段。

查看套件存放路徑

ll /var/lib/ocsinventory-reports/download/1680080137
total 57180
drwxr-xr-x 2 www-data www-data    4096 Mar 29 16:55 ./
drwxrwxr-x 3 root     www-data    4096 Mar 29 16:55 ../
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-1
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-10
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-11
-rw-r--r-- 1 www-data www-data 4875838 Mar 29 16:55 1680080137-12
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-2
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-3
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-4
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-5
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-6
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-7
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-8
-rw-r--r-- 1 www-data www-data 4875834 Mar 29 16:55 1680080137-9
-rw-r--r-- 1 www-data www-data     389 Mar 29 16:55 info

檢視一下套件 INFO 的內容

cat /var/lib/ocsinventory-reports/download/1680080137/info
<?xml version="1.0" encoding="UTF-8"?>
<DOWNLOAD ID="1680080137" PRI="5" ACT="EXECUTE" DIGEST="c0fd9a32d735674944a9b677e88a4631" PROTO="HTTPS" FRAGS="12" DIGEST_ALGO="MD5" DIGEST_ENCODE="Hexa" COMMAND="msiexec /i application.msi " NOTIFY_USER="0" NOTIFY_TEXT="" NOTIFY_COUNTDOWN="" NOTIFY_CAN_ABORT="0" NOTIFY_CAN_DELAY="0" NEED_DONE_ACTION="0" NEED_DONE_ACTION_TEXT="" GARDEFOU="rien" />

也可以直接在網頁上瀏覽

代理程式將透過套件的 INFO 來獲取所需的資訊

  • DOWNLOAD ID="1680080137"
  • PRI="5"
  • ACT="EXECUTE"
  • PROTO="HTTPS"
  • FRAGS="12"
  • COMMAND="msiexec /i application.msi"

檢視啟用套件
先到 Deployment 點選 Activate

在 Available Packages 點選剛剛建立的套件

該套件預計的部署時間為 1 小時 41 分,由距離下一次盤點的時間與下載套件所需的時間構成。

若您想叫縮短遠端部署時間,建議的方式如下。

  • 提升套件的優先權,在每個 Period 便會獲得更多下載的次數。
  • 減少套件的分段大小,需要 Period 的數量便會降低,也有加速的效果。

代理程式組態
在遠端部署套件之前,建議先檢查一下代理程式的組態設定是否正確。
預設路徑為 C:\ProgramData\OCS Inventory NG\Agent\ocsinventory.ini

需注意是否有設定 SSL 與 CaBundle 參數,以及是否有 cacert.pem 憑證。

[HTTP]
Server=http://your_ocsinventory_fqdn/ocsinventory
SSL=1
CaBundle=cacert.pem
AuthRequired=0
User=
Pwd=
ProxyType=0
Proxy=
ProxyPort=0
ProxyAuthRequired=0
ProxyUser=
ProxyPwd=

順便確認設定的 PROLOG_FREQ 是否已經改為 1 小時了
TTO_WAIT 代表下次 PROLOG 還要等待 3213 秒,約 53 分鐘。

[OCS Inventory Service]
PROLOG_FREQ=1
INVENTORY_ON_STARTUP=1
OLD_PROLOG_FREQ=1
TTO_WAIT=3213

遠端部署套件
到計算機的 Deployment,點選 Add Package。

遠端部署進階選項選擇 NO,點選 Validate。

勾選套件名稱,點選 Add Selected Packages。

遠端部署套件已成功指派

到計算機的 Deployment,該部署狀態處於 WAITING NOTIFICATION。

因為下次 PROLOG 還要等待 53 分鐘,我們不想等直接手動重啟服務。

此時部署狀態已經變更為 NOTIFIED

回到代理程式的下載路徑查看,已經將套件的 INFO 下載回來了。

  • since:紀錄部署的時間戳
  • task:紀錄尚未下載的片段

預設路徑為 C:\ProgramData\OCS Inventory NG\Agent\Download

從代理程式的系統日誌可以查看,通訊伺服器要求進行套件下載。
套件 <1680080137> 加入下載佇列

預設路徑為 C:\ProgramData\OCS Inventory NG\Agent\OCSInventory.log

==============================================================================
Starting OCS Inventory Agent on Thursday, March 30, 2023 12:59:56.
AGENT => Running OCS Inventory Agent Version 2.9.1.0
AGENT => Using OCS Inventory FrameWork Version 2.9.1.0
AGENT => Loading plug-in(s)
AGENT => Using network connection with Communication Server
AGENT => Using Communication Provider <OCS Inventory cURL Communication Provider> Version <2.9.1.0>
AGENT => Sending Prolog
AGENT => Prolog successfully sent
AGENT => Inventory required
AGENT => Launching hardware and software checks
AGENT => Sending Inventory
INVENTORY => Inventory changed since last run
ADMIN INFO => Couple ( TAG <=> NA ) added to configuration file
AGENT => Inventory successfully sent
AGENT =>  Communication Server asked for Package Download
DOWNLOAD => Package <1680080137> added to download queue
DOWNLOAD => Download and setup tool successfully started
AGENT => Unloading communication provider
AGENT => Unloading plug-in(s)
AGENT => Execution duration: 00:00:21.

等待一段時間便可以看到所有片段都下載回來了,大約花了 1 小時。

由於我們使用預設的 Priority 5 進行部署,代理程式將會在每個 Period 的 Cycle 5 與 Cycle 10 進行下載。

從代理程式的下載日誌可以驗證這一點

預設路徑為 C:\ProgramData\OCS Inventory NG\Agent\Download.log

==============================================================================
Starting OCS Inventory Package Download and Setup Tool on Thursday, March 30, 2023 13:00:17.
DOWNLOAD => Running OCS Inventory Download Version 2.9.1.0
DOWNLOAD => Using OCS Inventory FrameWork Version 2.9.1.0
DOWNLOAD => Using network connection with Communication Server
DOWNLOAD => Using Communication Provider <OCS Inventory cURL Communication Provider> Version <2.9.1.0>
DOWNLOAD => Starting new period of 10 cycles
DOWNLOAD => Parsing directory <C:\ProgramData\OCS Inventory NG\Agent\download> for packages
DOWNLOAD => Package <1680080137> verified and added to process queue
DOWNLOAD => Downloading package fragment <1680080137-1>
DOWNLOAD => Downloading package fragment <1680080137-2>
DOWNLOAD => Starting new period of 10 cycles
DOWNLOAD => Parsing directory <C:\ProgramData\OCS Inventory NG\Agent\download> for packages
DOWNLOAD => Package <1680080137> verified and added to process queue
DOWNLOAD => Downloading package fragment <1680080137-3>
DOWNLOAD => Downloading package fragment <1680080137-4>
DOWNLOAD => Starting new period of 10 cycles
DOWNLOAD => Parsing directory <C:\ProgramData\OCS Inventory NG\Agent\download> for packages
DOWNLOAD => Package <1680080137> verified and added to process queue
DOWNLOAD => Downloading package fragment <1680080137-5>
DOWNLOAD => Downloading package fragment <1680080137-6>
DOWNLOAD => Starting new period of 10 cycles
DOWNLOAD => Parsing directory <C:\ProgramData\OCS Inventory NG\Agent\download> for packages
DOWNLOAD => Package <1680080137> verified and added to process queue
DOWNLOAD => Downloading package fragment <1680080137-7>
DOWNLOAD => Downloading package fragment <1680080137-8>
DOWNLOAD => Starting new period of 10 cycles
DOWNLOAD => Parsing directory <C:\ProgramData\OCS Inventory NG\Agent\download> for packages
DOWNLOAD => Package <1680080137> verified and added to process queue
DOWNLOAD => Downloading package fragment <1680080137-9>
DOWNLOAD => Downloading package fragment <1680080137-10>
DOWNLOAD => Starting new period of 10 cycles
DOWNLOAD => Parsing directory <C:\ProgramData\OCS Inventory NG\Agent\download> for packages
DOWNLOAD => Package <1680080137> verified and added to process queue
DOWNLOAD => Downloading package fragment <1680080137-11>
DOWNLOAD => Downloading package fragment <1680080137-12>
DOWNLOAD => Starting new period of 10 cycles
DOWNLOAD => Parsing directory <C:\ProgramData\OCS Inventory NG\Agent\download> for packages
DOWNLOAD => Package <1680080137> verified and added to process queue
DOWNLOAD => Building package <1680080137>
DOWNLOAD => Executing action <EXECUTE> for package <1680080137>
DOWNLOAD => Sending result code <SUCCESS> for package <1680080137>

轉換成圖表如下,代理程式在 Period 1 到 Period 6 下載所有片段,直到 Period 7 將所的片段重組,並執行安裝與回傳 SUCCESS 狀態。

檢視部署結果
回到計算機的 Deployment,便可以看到套件安裝成功與安裝時間。

回到 Available Packages,點選套件右下藍色的統計圖示。

可以看到該套件目前所有的部署狀態與計算機數量

今天我們已經把 OCS Inventory 代理程式如何遠端安裝 MSI 應用程式的詳細過程分析給大家了解,下一篇我們來教大家如何使用 OCS Inventory 代理程式遠端移除應用程式,敬請期待。

參考文件
https://wiki.ocsinventory-ng.org/05.Deployment/Windows/Summary


上一篇
OCS Inventory 遠端部署功能簡介
下一篇
如何使用 OCS Inventory 代理程式遠端移除應用程式
系列文
OCS Inventory:開源資產管理解決方案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言