使用Ansible覆盖chocolateyInstall.ps1脚本

时间:2017-09-10 06:12:08

标签: sql-server ansible chocolatey

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

在我的情况下,我试图覆盖MsSqlServerManagementStudio2014Express附带的ChocolateyInstall.ps1。我想在MsSQLServer的静默安装期间传递一些参数,例如系统管理员密码和实例名称。

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

1 个答案:

答案 0 :(得分:1)

包参数与安装参数

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

包装参数(--install-arguments-sensitive | --package-parameters)不同,可以与包装相关的任何东西(不仅仅是安装人员)使用,但也必须存在于包装本身。对于商业版和秘密,您还有--params

选项1:社区存储库包

您需要确保程序包使用--package-parameters-sensitiveInstall-ChocolateyPackage或其他内置方法来了解安装参数可以与程序包一起使用。如果您需要参数,则需要与软件包的维护人员合作才能实现这些参数。

选项2:使用自己的包

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

另外,您可以直接将安装程序烘焙到包装中,因为您不需要在内部获得分销权,从而提供更可靠的体验。

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