WindowsとUbuntu on WSL上でAWS Tools for PowerShellを構成したので、最小限の手順書にまとめてみた。基本的に公式情報を見てという感じだけど、順番にどこを見てなにをすればよいかを示し、OSごとにちょっと変わる部分(PowerShellのデフォルトの実行ポリシーとか)に言及したつもり。
公式のドキュメントではなく、現時点の情報を元にした内容であり、as isの形でご利用いただける方向けに投稿しておきます。右上の歯車マークから「Markdownで本文を見る」をすると元のテキストが採れるのでコピペに便利だと思います。
概要
PowerShellはMicrosoft社の開発したシェル環境およびスクリプト言語です。PowerShell 6からはオープンソース化され、LinuxやMac OSでも動作するようになりました。またMicrosoft Azure、Amazon Web Service、Google Cloud Platform、VMwareなどが公式の管理ツールをPowerShell用のモジュールとして提供しています。
ここでは、AWSをPowerShellから操作できるように、以下の流れでAWS Tools for PowerShellを構成します。
- OSごとの手順で、PowerShellをインストールします。
- PowerShell上で、AWS Tools for PowerShell(
AWSPowerShell.NetCore
モジュール)をインストールします。
PowerShellのインストール
以下のOSごとの手順で、PowerShellをインストールします。
WindowsへのPowerShellのインストール
WindowsへのPowerShellのインストール方法は「Windows への PowerShell Core のインストール - PowerShell | Microsoft Docs」を参照してください。
通常は、以下を行います。
-
リリースページのLatest releaseから
PowerShell-x.x.x-win-x64.msi
ファイルを取得 - 取得したファイルを実行し、ウィザードに従ってインストールを完了
LinuxへのPowerShellのインストール
LinuxへのPowerShellのインストール方法は、「Linux への PowerShell Core のインストール - PowerShell | Microsoft Docs」を参照してください。
例えば、Ubuntu 18.04では以下を行います。
- 上記ページの「Ubuntu 18.04」の項を参照する
- 記述に従い、Microsoftの
universe
リポジトリを使用可能にする - 記述に従い、
sudo apt-get install -y powershell
でPowerShellをインストールする
MacOSへのPowerShellのインストール
MacOSへのPowerShell のインストール方法は、「macOS への PowerShell Core のインストール - PowerShell | Microsoft Docs」を参照してください。
AWS Tools for PowerShellの構成
本手順は、PowerShellでAWSを管理する際に必要な準備です。
AWS Tools for PowerShellのインストール
PowerShellのコンソールを起動します。
- Windowsでは、スタートメニューから
PowerShell
>PowerShell 6 (x64)
を選択します。 - MacOS、Linuxでは、シェル環境から
pwsh
を実行します。
まず外部から取得するスクリプトやモジュールを、署名付きのものであれば実行できるようになっているか、実行ポリシーを確認します。PowerShell上で Get-ExecutionPolicy
を行います(なお PS>
はPowerShellのプロンプトを表わしています)。
PS> Get-ExecutionPolicy
RemoteSigned
実行ポリシーが Restricted
や AllSigned
の場合はインターネットからダウンロードされたスクリプトおよび構成ファイルが実行できないので、以下を実行して RemoteSigned
に変更します。すでに RemoteSigned
またはそれより寛容なポリシー(例えばUbuntuでは通常 Unrestricted
)の場合は、変更不要です。
PS> Set-ExecutionPolicy RemoteSigned
またAWS Tools for PowerShellの配布リポジトリであるPowerShell Galleryが信頼済みか確認します。
PS> Get-PSRepository
Name InstallationPolicy SourceLocation
---- ------------------ --------------
PSGallery Untrusted https://www.powershellgallery.com/api/v2
Untrusted
の時は、以下を実行して信頼済みにします。
PS> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
これでインストールできる環境が整ったので、Install-Module
コマンドにより、AWS Tools for PowerShell Coreをインストールします。
PS> Install-Module -Name AWSPowerShell.NetCore -AllowClobber
AWS Tools for PowerShell Coreは、自動では読み込まれません。Import-Module
コマンドにより読み込みます。その後 Get-Module
によりAWS Tools for PowerShell Coreを読み込めていることを確認しておきます。
PS> Import-Module AWSPowerShell.NetCore
PS> Get-Module AWS*
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 4.0.1.1 AWSPowerShell.NetCore {Add-AASScalableTarget, Add-A…
なお、PowerShell環境ではコマンドレット名やファイル名はもちろん、引数でも補完機能が利用できること多くあります。 Import-Module
ではモジュール名をすべて入力する代わりに AWS
まで入力してTABキーを押下すると、このモジュール名が補完されて出てくるはずです。
参照
以下を元情報としています。本手順が古くなった場合や正しく動かないと思われたときには、こちらをご参照ください。
- Windows への PowerShell Core のインストール - PowerShell | Microsoft Docs
- Windows に AWS Tools for PowerShell をインストールする - AWS Tools for PowerShell
- Linux への PowerShell Core のインストール - PowerShell | Microsoft Docs
- macOS への PowerShell Core のインストール - PowerShell | Microsoft Docs
- Linux または MacOS での AWS Tools for PowerShell のインストール - AWS Tools for PowerShell