diff --git a/lib/ansible/modules/extras/windows/win_chocolatey.ps1 b/lib/ansible/modules/extras/windows/win_chocolatey.ps1 index 2c9a945840c..f47b3ce97dd 100644 --- a/lib/ansible/modules/extras/windows/win_chocolatey.ps1 +++ b/lib/ansible/modules/extras/windows/win_chocolatey.ps1 @@ -34,6 +34,11 @@ if ($source) {$source = $source.Tolower()} $showlog = Get-Attr -obj $params -name showlog -default "false" | ConvertTo-Bool $state = Get-Attr -obj $params -name state -default "present" + +$installargs = Get-Attr -obj $params -name install_args -default $null +$packageparams = Get-Attr -obj $params -name params -default $null +$ignoredependencies = Get-Attr -obj $params -name ignore_dependencies -default "false" | ConvertTo-Bool + if ("present","absent" -notcontains $state) { Fail-Json $result "state is $state; must be present or absent" @@ -106,7 +111,13 @@ Function Choco-Upgrade [Parameter(Mandatory=$false, Position=3)] [string]$source, [Parameter(Mandatory=$false, Position=4)] - [bool]$force + [bool]$force, + [Parameter(Mandatory=$false, Position=5)] + [string]$installargs, + [Parameter(Mandatory=$false, Position=6)] + [string]$packageparams, + [Parameter(Mandatory=$false, Position=7)] + [bool]$ignoredependencies ) if (-not (Choco-IsInstalled $package)) @@ -131,6 +142,21 @@ Function Choco-Upgrade $cmd += " -force" } + if ($installargs) + { + $cmd += " -installargs '$installargs'" + } + + if ($packageparams) + { + $cmd += " -params '$packageparams'" + } + + if ($ignoredependencies) + { + $cmd += " -ignoredependencies" + } + $results = invoke-expression $cmd if ($LastExitCode -ne 0) @@ -163,14 +189,22 @@ Function Choco-Install [Parameter(Mandatory=$false, Position=4)] [bool]$force, [Parameter(Mandatory=$false, Position=5)] - [bool]$upgrade + [bool]$upgrade, + [Parameter(Mandatory=$false, Position=6)] + [string]$installargs, + [Parameter(Mandatory=$false, Position=7)] + [string]$packageparams, + [Parameter(Mandatory=$false, Position=8)] + [bool]$ignoredependencies ) if (Choco-IsInstalled $package) { if ($upgrade) { - Choco-Upgrade -package $package -version $version -source $source -force $force + Choco-Upgrade -package $package -version $version -source $source -force $force ` + -installargs $installargs -packageparams $packageparams ` + -ignoredependencies $ignoredependencies } return @@ -193,6 +227,21 @@ Function Choco-Install $cmd += " -force" } + if ($installargs) + { + $cmd += " -installargs '$installargs'" + } + + if ($packageparams) + { + $cmd += " -params '$packageparams'" + } + + if ($ignoredependencies) + { + $cmd += " -ignoredependencies" + } + $results = invoke-expression $cmd if ($LastExitCode -ne 0) @@ -253,7 +302,8 @@ Try if ($state -eq "present") { Choco-Install -package $package -version $version -source $source ` - -force $force -upgrade $upgrade + -force $force -upgrade $upgrade -installargs $installargs ` + -packageparams $packageparams -ignoredependencies $ignoredependencies } else { diff --git a/lib/ansible/modules/extras/windows/win_chocolatey.py b/lib/ansible/modules/extras/windows/win_chocolatey.py index b31654a2922..a1329ef4234 100644 --- a/lib/ansible/modules/extras/windows/win_chocolatey.py +++ b/lib/ansible/modules/extras/windows/win_chocolatey.py @@ -75,6 +75,24 @@ options: require: false default: null aliases: [] + install_args: + description: + - Arguments to pass to the native installer + require: false + default: null + aliases: [] + params: + description: + - Parameters to pass to the package + require: false + default: null + aliases: [] + ignore_dependencies: + description: + - Ignore dependencies, only install/upgrade the package itself + require: false + default: false + aliases: [] author: "Trond Hindenes (@trondhindenes), Peter Mounce (@petemounce), Pepe Barbe (@elventear), Adam Keech (@smadam813)" '''