⚠️ IMPORTANT This module is early in it´s development phase. Many API function and features are not yet available. You are welcome to contribute on GitHub to accelerate progress further.
PSPortainer
This project has adopted the following policies
Project status
About
PSPortainer is a wrapper for the Portainer Rest API. This module is work-in-progress and new functions and features are released frequently.
Installation
PowerShell Gallery
To install from the PowerShell gallery using PowerShellGet run the following command:
Install-Module PSPortainer -Scope CurrentUser
Usage
Connect to Portainer
To interact with portainer we first need to connect to our Portainer instance. We do not maintain a session with portainer by definition but we do store the portainer URL and authentication information as well as testing and verifying that we successfully can communicate with the Portainer API. We can use several methods of authentication. (As of writing this two methods is currently supported but the aim is support all available authentication schemes). We can use an AccessToken that is generated by the user in the Portainer web UI or we can connect using username/password.
AccessToken
Connect-Portainer -BaseURL 'https://portainer.contoso.com' -AccessToken 'ptr_ABoR54bB1NUc4aNY0F2PhppP1tVDu2Husr3vEbPUsw5='
Credentials
Connect-Portainer -BaseURL 'https://portainer.contoso.com' -Credentials (Get-Credential)
Call functions
Once a session is establish you start using the cmdlets provided with the module. For instance list all docker containers;
Get-PContainer
To get a single container by ID use
Get-PContainer -Id '<id>'
Connect to multiple Portainer instances from the same Powershell Session
It is possible to work with two Portainer instances within the same powershell session by storing the session information in variables and then provide the session object to each cmdlet.
$Instance1 = Connect-Portainer -BaseURL 'https://portainer-01.contoso.com' -AccessToken 'ptr_ABoR54bB1NUc4aNY0F2PhppP1tVDu2Husr3vEbPUsw5=' -PassThru
$Instance2 = Connect-Portainer -BaseURL 'https://portainer-02.contoso.com' -AccessToken 'ptr_ABoR54bB1NUc4aNY0F2PhppP1tVDu2Husr3vEbPUsw5=' -PassThru
Get-PContainer -Session $Instance1
Get-PContainer -Session $Instance2
Do note that the last Connect-Portainer call will be the fallback session that is used if the cmdlet is not provided with a session object. In the example above, a call to Get-PContainer without a -Session parameter would use the instance portainer-02.