Windows-Server-2012-R2

從 salt master 安裝 WIndows 應用程序時出錯

  • May 19, 2020

我正在嘗試通過鹽在 Windows 伺服器 2012 R2 上安裝 Icinga。

我創建了一個 icinga.sls 文件並將其儲存在 /srv/salt/win/repo-ng 中。

文件內容:

icinga:
 '2.4.7':
   full_name: 'Icinga2-v2.4.7'
   installer: 'salt://win/repo-ng/Icinga2-v2.4.7-x86.msi'
   uninstaller: 'http://packages.icinga.org/windows/Icinga2-v2.4.7-x86.msi
   install_flags: '/qn /norestart'
   uninstall_flags: '/qn /norestart'
   msiexec: True
   locale: en_US
   reboot: False

我還將 Icinga2-v2.4.7-x86.msi 文件複製到 /srv/salt/win/repo-ng。

我執行 salt minion_name pkg.refresh_db

我在伺服器 2012 PC 上的 C:\salt\var\cache\salt\minion\files\base\win\repo-ng 中看到 Icinga2-v2.4.7-x86.msi。

當我執行 salt minion_name pkg.install icinga 時,我得到以下返回,當我檢查我的伺服器 2012 PC icinga 未安裝時:

_comment:

       Software not found in the registry.
       Could be a problem with the Software
       definition file. Verify the full_name
       and the version match the registry exactly.
       Failed after 10 tries.

有人可以告訴我我做錯了什麼嗎?

我已經測試過從包含的儲存庫安裝 7-zip 並且效果很好。

另一個有趣的事情是我有另一台 2012 年的伺服器,我之前手動安裝了 icinga 應用程序 - 我解除安裝了它並嘗試用 salt 安裝它,它確實安裝了,但也出現了同樣的錯誤,但安裝工作正常。

我還嘗試使用 64 位版本的 Icinga (Icinga2-v2.4.7-x86_64.msi) 並相應地調整 icinga.sls 文件並得到相同的錯誤。

Salt 是一個很棒的系統,但我需要使用它在 100 多台 PC 上安裝 icinga,因此需要一個自動化系統 - 如果我可以使用 powershell 等以其他方式安裝它,我也可以,但我想使用 salt 安裝。

預先感謝您的回复。

我讓它像這樣工作:

首先我必須從 Windows 更新安裝這個 kb https://support.microsoft.com/en-us/kb/2999226

然後我修改了 full_name 選項以匹配安裝應用程序時顯示的內容

全名:思想 2

然後我可以毫無問題地安裝和解除安裝 Icinga。

對於遇到相同問題的其他任何人,請確保您使用與嘗試安裝 icinga 相同的位版本的 salt-minion - 例如,我有 32 位 salt minion 並嘗試安裝 64 位 icinga它失敗並出現同樣的錯誤。將 salt-minion 重新安裝為 64 位並按照上述說明完美執行。

即使我在回答我自己的問題,也要感謝大衛,他在這篇文章中幫助了我:

https://groups.google.com/forum/#!topic/salt-users/NstAv252vy0

除了 Rob 的回答,為了區分 32 位 - 64 位安裝,這裡是我的 /srv/salt/file/base/win/repo-ng/Icinga2/init.sls 範例文件:

Icinga2:
 {% for version in ['2.8.0','2.11.2','2.11.3'] %}
 '{{version}}':
   full_name: 'Icinga 2'
   {% if grains.get('cpuarch') == 'AMD64' %}
   installer: 'salt:///win/repo-ng/Icinga2/Icinga2-v{{version}}-x86_64.msi'
   uninstaller: 'salt:///win/repo-ng/Icinga2/Icinga2-v{{version}}-x86_64.msi'
   {% else %}
   installer: 'salt:///win/repo-ng/Icinga2/Icinga2-v{{version}}-x86.msi'
   uninstaller: 'salt:///win/repo-ng/Icinga2/Icinga2-v{{version}}-x86.msi'
   {% endif %}
   msiexec: True
   locale: en_US
   reboot: False
   install_flags: '/qn /norestart'
   uninstall_flags: '/qn /norestart'
   allusers: True
 {% endfor %}

/srv/salt/file/base/win/repo-ng/Icinga2 文件:

Icinga2-v2.11.2-x86_64.msi

Icinga2-v2.11.2-x86.msi

Icinga2-v2.11.3-x86_64.msi

Icinga2-v2.11.3-x86.msi

Icinga2-v2.8.0-x86_64.msi

Icinga2-v2.8.0 -x86.msi

初始化.sls

引用自:https://serverfault.com/questions/776706