community.windows.win_psrepository – Adds, removes or updates a Windows PowerShell repository.
Note
This plugin is part of the community.windows collection (version 1.8.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.windows
.
To use it in a playbook, specify: community.windows.win_psrepository
.
Synopsis
This module helps to add, remove and update Windows PowerShell repository on Windows-based systems.
Requirements
The below requirements are needed on the host that executes this module.
PowerShell Module PowerShellGet >= 1.6.0
PowerShell Module PackageManagement >= 1.1.7
PowerShell Package Provider
NuGet
>= 2.8.5.201
Parameters
Parameter |
Comments |
---|---|
If force has no effect when state=absent. See notes for additional context. Choices:
|
|
Sets the Will default to Choices:
|
|
Name of the repository to work with. |
|
Proxy to use for repository. |
|
Specifies the URI for publishing modules to this repository. |
|
Specifies the URI for publishing scripts to this repository. |
|
Specifies the URI for discovering and installing scripts from this repository. |
|
Specifies the URI for discovering and installing modules from this repository. A URI can be a NuGet server feed (most common situation), HTTP, HTTPS, FTP or file location. Required when registering a new repository or using force=True. |
|
If If Choices:
|
Notes
Note
See the examples on how to update the NuGet package provider.
You can not use
win_psrepository
to re-register (add) removed PSGallery, use the commandRegister-PSRepository -Default
instead.When registering or setting source_location, PowerShellGet will transform the location according to internal rules, such as following HTTP/S redirects.
This can result in a
CHANGED
status on each run as the values will never match and will be “reset” each time.To work around that, find the true destination value with community.windows.win_psrepository_info or
Get-PSRepository
and update the playbook to match.When updating an existing repository, all options except name are optional. Only supplied options will be updated. Use force=True to exactly match.
script_location, publish_location, and script_publish_location are optional but once set can only be cleared with force=True.
Using force=True will unregister and re-register the repository if there are any changes, so that it exactly matches the options specified.
See Also
See also
- community.windows.win_psrepository_info
The official documentation on the community.windows.win_psrepository_info module.
- community.windows.win_psmodule
The official documentation on the community.windows.win_psmodule module.
Examples
---
- name: Ensure the required NuGet package provider version is installed
ansible.windows.win_shell: Find-PackageProvider -Name Nuget -ForceBootstrap -IncludeDependencies -Force
- name: Register a PowerShell repository
community.windows.win_psrepository:
name: MyRepository
source_location: https://myrepo.com
state: present
- name: Remove a PowerShell repository
community.windows.win_psrepository:
name: MyRepository
state: absent
- name: Add an untrusted repository
community.windows.win_psrepository:
name: MyRepository
installation_policy: untrusted
- name: Add a repository with different locations
community.windows.win_psrepository:
name: NewRepo
source_location: https://myrepo.example/module/feed
script_source_location: https://myrepo.example/script/feed
publish_location: https://myrepo.example/api/module/publish
script_publish_location: https://myrepo.example/api/script/publish
- name: Update only two properties on the above repository
community.windows.win_psrepository:
name: NewRepo
installation_policy: untrusted
script_publish_location: https://scriptprocessor.example/publish
- name: Clear script locations from the above repository by re-registering it
community.windows.win_psrepository:
name: NewRepo
installation_policy: untrusted
source_location: https://myrepo.example/module/feed
publish_location: https://myrepo.example/api/module/publish
force: True
Authors
Wojciech Sciesinski (@it-praktyk)
Brian Scholer (@briantist)