Windows Instance でのパッケージのインストール - AWS OpsWorks

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Windows Instance でのパッケージのインストール

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは、通常どおり OpsWorks コンソール、API、CLI、および CloudFormation リソースを使用できます。その時点で廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、「AWS OpsWorks Stacks サポート終了に関する FAQ」および「AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行」を参照してください。

注記

この例では、「Windows インスタンスでのレシピの実行」の例を実行済みであることを前提としています。実行済みでない場合は、最初にその例を実行する必要があります。特に、インスタンスへの RDP アクセスを有効にする方法について説明しています。

ソフトウェアが MSI ファイルなどのインストーラパッケージで提供されている場合は、そのファイルをインスタンスにダウンロードして実行する必要があります。この例では、関連する環境変数を定義する方法など、MSI パッケージ、Python ランタイムをインストールするクックブックを実装する方法を示しています。IIS など Windows の機能をインストールする方法の詳細については、「Windows の機能のインストール: IIS」を参照してください。

クックブックをセットアップするには
  1. installpython という名前のディレクトリを作成し、そのディレクトリに移動します。

  2. installpython に、次のコンテンツを含む metadata.rb ファイルを追加します。

    name "installpython" version "0.1.0"
  3. installpythonrecipes ディレクトリと files ディレクトリを追加して、ファイルに default ディレクトリを追加します。

  4. Python Releases for Windows からクックブックの files\default ディレクトリに Python パッケージをダウンロードします。この例では、python-3.4.3.amd64.msi という名前の MSI インストーラを使用して、Python 3.5.0a3 の Windows x86-64 バージョンをインストールします。

  5. 以下のレシピコードを保存した default.rb という名前のファイルを recipes ディレクトリに追加します。

    directory 'C:\tmp' do rights :full_control, 'Everyone' recursive true action :create end cookbook_file 'C:\tmp\python-3.4.3.amd64.msi' do source "python-3.4.3.amd64.msi" rights :full_control, 'Everyone' action :create end windows_package 'python' do source 'C:\tmp\python-3.4.3.amd64.msi' action :install end env "PATH" do value 'c:\python34' delim ";" action :modify end

    このレシピでは、以下のような処理を実行します。

    1. ディレクトリリソースを使用して、C:\tmp ディレクトリを作成します。

      このリソースの詳細については、「例 3: ディレクトリの作成」を参照してください。

    2. cookbook_file リソースを使用して、クックブックの files\default ディレクトリから C:\tmp にインストーラをコピーします。

      このリソースの詳細については、「クックブックからのファイルのインストール」を参照してください。

    3. windows_package リソースを使用して、c:\python34 に Python をインストールする MSI インストーラを実行します。

      インストーラによって必要なディレクトリを作成され、ファイルがインストールされますが、システムの PATH 環境変数は変更されません。

    4. env リソースを使用して、システムパスに c:\python34 を追加します。

      env リソースを使用して、環境変数を定義します。この例では、レシピによって c:\python34 がパスに追加されて、コマンドラインから Python スクリプトを簡単に実行できるようになります。

      • この例では、リソース名に環境変数の名前 PATH を指定します。

      • この例では、value 属性に変数の値 c:\\python34 を指定します (\ 文字をエスケープする必要があります)。

      • :modify アクションによって、指定した値が変数の現在の値に付加されます。

      • delim 属性には、既存の値と新しい値を区切る記号 (この例では ;) を指定します。

  6. .zipinstallpython アーカイブを作成し、S3 バケットにアップロードして、公開します。後で使用できるように、アーカイブの URL を記録します。詳細については、「クックブックリポジトリ」を参照してください。

    Amazon S3 バケットに配信されるコンテンツには、カスタマーコンテンツが含まれている場合があります。機密データの削除の詳細については、「S3 バケットを空にする方法」または「S3 バケットを削除する方法」を参照してください。

以下のようにこの例のスタックを作成します。既存の Windows スタックを使用することもできます。後で説明するように、クックブックを更新するだけです。

Stack を作成する
  1. AWS OpsWorks スタックコンソールを開いて [Add Stack] を選択します。以下の設定を指定し、その他の設定はデフォルト値を受け入れて、[Add Stack] を選択します。

    • 名前 – InstallPython

    • リージョン – 米国西部 (オレゴン)

      この例はいずれのリージョンでも動作しますが、チュートリアルでは米国西部 (オレゴン) を使用することをお勧めします。

    • Default operating system (デフォルトのオペレーティングシステム) – Microsoft Windows Server 2012 R2

  2. [Add a layer] を選択し、以下の設定を使用してスタックにカスタムレイヤーを追加します。

    • Name (名前) – Python

    • Short name (短縮名) – python

  3. デフォルト設定で Pythonレイヤーに 24/7 インスタンスを追加し、起動します。

インスタンスがオンラインになった後、クックブックをインストールし、レシピを実行できます

クックブックをインストールし、レシピを実行するには
  1. カスタムクックブックを有効にするようにスタックを編集し、以下の設定を指定します。

    • Repository type (リポジトリタイプ) – S3 Archive (アーカイブ)

    • Repository URL (リポジトリの URL) – 前の手順で記録したクックブックのアーカイブ の URL。

    その他の設定ではデフォルト値を受け入れ、[Save] を選択してスタック設定を更新します。

  2. [Update Custom Cookbooks] スタックコマンドを実行します。スタックのオンラインインスタンスにカスタムクックブックの最新バージョンがインストールされます。以前のバージョンのクックブックがある場合は、このコマンドによって上書きされます。

  3. カスタムクックブックの更新が終了したら、実行するレシピinstallpython::default に設定してレシピの実行スタックコマンドを実行することで、レシピを実行します。このコマンドは、installpython::default から成る実行リストで Chef 実行を開始します。

    注記

    この例では、わかりやすいように [Execute Recipes] を使用していますが、通常は、適切なライフサイクルイベントに割り当てることで、AWS OpsWorks スタックによってレシピが自動的に実行されるようにします。このようなレシピは、イベントを手動でトリガーすることによって実行できます。Setup および Configure イベントをトリガーするにはスタックコマンドを使用し、Deploy および Undeploy イベントをトリガーするにはデプロイコマンドを使用できます。

  4. インストールを確認するには、RDP を使用してインスタンスに接続し、Windows Explorer を開きます。

    • ファイルシステムに C:\Python34 ディレクトリがあることを確認できます。

    • コマンドラインから path を実行した場合は、PATH=c:\python34;C:\Windows\system32;...のようになります。

    • コマンドラインから python --version を実行した場合は、Python 3.4.3 が返されます。