aws / aws-tools-for-powershell

The AWS Tools for PowerShell lets developers and administrators manage their AWS services from the PowerShell scripting environment.
Apache License 2.0
236 stars 78 forks source link

AWS.Tools Offline Installer #107

Closed jakauppila closed 4 years ago

jakauppila commented 4 years ago

Unless I'm mis-reading the AWS.Tools announcement, is there no longer an offline installer package for the new Powershell modules ?

We deploy to an air-gapped environment with no nuget mirror for proxying the PowerShell gallery and have relied on the AWSToolsAndSDKForNet MSI for installing the modules on servers; is it possible to do this with AWS.Tools or AWSPowerShell.NetCore?

matteo-prosperi commented 4 years ago

Hello, I can confirm that the MSI installer only contains the AWSPowerShell version of AWS Tools for PowerShell. This is a conscious choice as we suggest using Install-Module instead as the preferred way to install AWS Tools for PowerShell. Could you clarify if downloading the module from https://www.powershellgallery.com/api/v2/package/AWSPowerShell.NetCore/, moving it to the air-gapped environment and install it, either with Install-Module or manually (nupkg files arezip files and can simply be expanded in the PowerShell module folder), is an option? Or do you need the module to be available within the air-gapped environment instead?

AdilHindistan commented 4 years ago

@matteo-prosperi That suggestion is fine, if you already have a Windows server up and running but is far from ideal if you are building one and want to include the AWS Tools in it (say for a custom AMI from an on-prem build source) . Builds envs are usually secured and isolated, which means no internet access. I like the approach with AWS.Tools but that 'choice' is not making it easy for some cases. Having an MSI for it would help your consumers adopt it.

matteo-prosperi commented 4 years ago

Thanks for the feedback. We are currently looking into this. It is unlikely though that we will make the new modules available in the MSI, more likely they will be made available in a zip file instead.

jakauppila commented 4 years ago

A zip file works for us; there is no hard requirement for an MSI, just that an offline install is achievable with relative ease.

AdilHindistan commented 4 years ago

Same here. Zip file with instructions on how to install it (do we update the system path manually, or should it be dropped to a specificlocation that PowerShell checks for modules) would be fine @matteo-prosperi

matteo-prosperi commented 4 years ago

Hi, starting with version 4.0.3.0 we have published public links to the .zip files for the modules. They are the following:

At every release, we will publish new .zip files. Older modules will continue to be available as well for download.

We have also created some public links that will always track the latest version

The folder structure in the .zip files is such that they can simply be extracted in a module folder. Multiple versions can also be installed side-by-side without any extra work.

You can have a look at your $Env:PSModulePath variable and unzip the modules in one of the module folders listed there. For example, on my machine

PS> $Env:PSModulePath
C:\Users\username\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

So I would unzip into C:\Users\username\Documents\WindowsPowerShell\Modules, if I want the modules for my user. Or into C:\Program Files\WindowsPowerShell\Module, if I want them available to all users. If you use both Windows PowerShell and PowerShell Core, they will have different modules folder.

jakauppila commented 4 years ago

@matteo-prosperi That is perfect, thank you!