翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Windows PowerShell スクリプトの実行
重要
- AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 にお問い合わせください。 AWS Support でのチーム AWS re:Post
注記
以下の例では、「Windows インスタンスでのレシピの実行」の例を実行済みであることを前提としています。実行済みでない場合は、最初にその例を実行する必要があります。特に、インスタンスRDPへのアクセスを有効にする方法について説明します。
レシピが Windows インスタンスでタスクを実行する方法の 1 つ、特に対応する Chef リソースを持たないタスクは、レシピが Windows PowerShell スクリプトを実行することです。このセクションでは、Windows PowerShell スクリプトを使用して Windows 機能をインストールする方法を説明することで、基本について説明します。
powershell_script
以下に、この例のスタックを作成する方法を簡単に示します。詳細については、「新しいスタックを作成する」を参照してください。
Stack を作成する
-
を開きますAWS OpsWorks スタックコンソール
を選択し、スタックの追加 を選択します。次の設定を指定し、その他の設定はデフォルト値を受け入れて、[Add Stack] をクリックします。 -
名前 – PowerShellTest
-
リージョン – 米国西部 (オレゴン)
この例はいずれのリージョンでも動作しますが、チュートリアルでは米国西部 (オレゴン) を使用することをお勧めします。
-
Default operating system (デフォルトのオペレーティングシステム) – Microsoft Windows Server 2012 R2
-
-
[Add a layer] を選択し、以下の設定を使用してスタックにカスタムレイヤーを追加します。
-
名前 – PowerShell
-
Short name (短縮名) – powershell
-
-
デフォルト設定の に 24/7 インスタンスを PowerShell レイヤーに追加し、 を起動します。
-
アクセス許可を選択し、 を編集し、SSH/RDP と sudo/admin を選択します。通常のユーザーとしてインスタンスにログインするには、
AWS-OpsWorks-RDP-Server
セキュリティグループに加えて、この権限が必要です。
インスタンスの起動中に (通常は数分かかります)、クックブックを作成できます。この例のレシピによってデータディレクトリが作成されます。これは基本的に「例 3: ディレクトリの作成」からのレシピであり、Windows 用に修正しています。
クックブックをセットアップするには
-
powershell
という名前のディレクトリを作成し、そのディレクトリに移動します。 -
以下の内容で
metadata.rb
ファイルを作成し、windowstest
に保存します。name "powershell" version "0.1.0"
-
recipes
内にpowershell
ディレクトリを作成します。 -
次のレシピで
default.rb
ファイルを作成し、recipes
ディレクトリに保存します。Chef::Log.info("******Installing XPS.******") powershell_script "Install XPS Viewer" do code <<-EOH Install-WindowsFeature XPS-Viewer EOH guard_interpreter :powershell_script not_if "(Get-WindowsFeature -Name XPS-Viewer).installed" end
-
powershell_script
リソースは コマンドレットを実行してビューXPSワーをインストールします。この例では、1 つのコマンドレットのみを実行していますが、
code
ブロックには任意の数のコマンドラインを含めることができます。 -
guard_interpreter
属性は、Chef に Windows の 64 ビットバージョンを使用するように指示します PowerShell。 -
not_if
ガード属性を指定すると、Chef によってインストール済みの機能はインストールされません。
-
-
.zip
ディレクトリのpowershell
アーカイブを作成します。 -
アーカイブを Amazon S3 バケット にアップロードし、アーカイブを公開して、アーカイブの を記録しますURL。プライベートアーカイブを使用することもできますが、この例ではパブリックアーカイブで十分であり、作業がいくらか簡単になります。
Amazon S3 バケットに配信されるコンテンツには、カスタマーコンテンツが含まれている場合があります。機密データの削除の詳細については、「S3 バケットを空にする方法」または「S3 バケットを削除する方法」を参照してください。
これで、クックブックをインストールし、レシピを実行できるようになりました。
レシピを実行するには
-
カスタムクックブックを有効にするようにスタックを編集し、以下の設定を指定します。
-
Repository type (リポジトリタイプ) – S3 Archive (アーカイブ)
-
リポジトリ URL — 前に記録URLしたクックブックアーカイブ
その他の設定ではデフォルト値を受け入れ、[Save] を選択してスタック設定を更新します。
-
-
[Update Custom Cookbooks] スタックコマンドを実行して、カスタムクックブックの最新バージョンをインスタンスにインストールします。
-
カスタムクックブックの更新が終了したら、実行するレシピを
powershell::default
に設定してレシピの実行スタックコマンドを実行することで、レシピを実行します。
注記
この例では、便宜上 Execute Recipes を使用していますが、通常、 AWS OpsWorks スタックは、レシピを適切なライフサイクルイベントに割り当てることで、レシピを自動的に実行します。このようなレシピは、イベントを手動でトリガーすることによって実行できます。Setup および Configure イベントをトリガーするにはスタックコマンドを使用し、Deploy および Undeploy イベントをトリガーするにはデプロイコマンドを使用できます。
レシピが正常に実行された後で、それを検証できます。
PowerShell レシピを確認するには
-
Chef ログを調べます。powershell1 インスタンスの [Log] (ログ) 列の [show] (表示) をクリックすると、ログが表示されます。下へスクロールすると、下部にログメッセージが表示されます。
... [2015-04-27T18:12:09+00:00] INFO: Storing updated cookbooks/powershell/metadata.rb in the cache. [2015-04-27T18:12:09+00:00] INFO: ******Installing XPS.****** [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Install XPS Viewer] action run (powershell::default line 3) [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Guard resource] action run (dynamically defined) [2015-04-27T18:12:42+00:00] INFO: powershell_script[Install XPS Viewer] ran successfully ...
-
RDP を使用してインスタンスにログインし、スタートメニューを開きます。XPS ビューワーは Windows アクセサリ で一覧表示する必要があります。