使用 Ansible 覆盖 chocolateyInstall.ps1 脚本

Overriding chocolateyInstall.ps1 script with Ansible

我想覆盖 Ansible win_chocolatey 模块附带的默认 powershell 脚本。我该怎么做?

就我而言,我试图覆盖 MsSqlServerManagementStudio2014Express 附带的 ChocolateyInstall。ps1。我想在静默安装 MsSQLServer 时多传递一些参数,例如系统管理员密码和实例名称。

我尝试在我的 ansible 剧本中的 win_chocolatey 模块调用中使用 "install_args" 和 "params" 选项提供这些附加参数。但是在静默安装期间,MsSqlServerManagementStudio2014Express 的 powershell 脚本中没有编写处理程序来包含它们。

包参数与安装参数

安装参数(choco.exe--install-arguments 选项)对包完全不可见,它们附加到包中当前的静默参数集。也可以用 --override-arguments 完全覆盖它们。在 Chocolatey 的商业版中,您还可以通过 --install-arguments-sensitive 来对日志保密。

Package Parameters (--package-parameters|--params) 不同,可以与任何与包装相关的东西一起使用(不仅仅是安装程序),但也必须存在于包装本身中。对于商业版和机密,您还有 --package-parameters-sensitive.

选项 1:社区存储库包

您需要确保该软件包使用 Install-ChocolateyPackageInstall-ChocolateyInstallPackage 或其他内置方法,以了解该软件包可以使用安装参数。如果您需要参数,则需要与包的维护者合作以实现这些参数。

选项 2:使用您自己的包

如果您在组织中使用 Chocolatey,您将希望使用存储在内部某处的自己的包。这保证了更高的可靠性和可重复性,这有助于组织使用任何东西。

此外,您可以将安装程序直接放入包中,因为您不受内部分发权的约束,从而提供更可靠的体验。

在组织中规划 Chocolatey 时,阅读并理解这一点特别有帮助:https://chocolatey.org/docs/community-packages-disclaimer