Configure レシピ - AWS OpsWorks

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

Configure レシピ

重要

- AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 にお問い合わせください。 AWS Support でのチーム AWS re:Post または through AWS プレミアムサポート

Configure レシピは、レイヤーの Configure ライフサイクルイベントに割り当てられます。このイベントは、スタックのすべてのインスタンスで、インスタンスがオンライン状態になったとき、またはオンライン状態から別の状態になったときに発生します。Configure レシピを使用することで、必要に応じ、変更に対応してインスタンスの設定を調整します。Configure レシピを実装するときは、スタックの設定の変更がこのレイヤーとは無関係なインスタンスに関与している場合があることに注意してください。このレシピは、適切に応答できる必要があります。それは、場合によっては何も処理を実行しないことがあることを意味します。

tomcat::configure

tomcat::configure レシピは、レイヤーの Configure ライフサイクルイベントに対応します。

include_recipe 'tomcat::context' # Optional: Trigger a Tomcat restart in case of a configure event, if relevant # settings in custom JSON have changed (e.g. java_opts/JAVA_OPTS): #include_recipe 'tomcat::container_config'

tomcat::configure レシピは、2 つの依存レシピを実行するメタレシピです。

  1. tomcat::context レシピは、ウェブアプリケーションのコンテキスト設定ファイルを作成します。

    このファイルは、次のセクションで説明するように、アプリケーションが My SQLインスタンスとの通信に使用するJDBCリソースを設定します。設定イベントに応じてこのレシピを実行すると、データベースレイヤーが変更された場合に、レイヤーでウェブアプリケーションのコンテキスト設定ファイルを更新することができます。

  2. tomcat::container_config Setup レシピは、コンテナ設定のあらゆる変更をキャプチャするために再度実行されます。

includetomcat::container_config は、この例のようにコメントアウトされます。カスタム を使用して Tomcat JSON 設定を変更する場合は、コメントを削除できます。その後、Configure ライフサイクルイベントでは、tomcat::container_config を実行することにより「tomcat::container_config」で説明するように Tomcat 関連の設定ファイルを更新し、Tomcat サービスを再起動します。

tomcat::context

Tomcat クックブックを使用すると、アプリケーションは J2EE DataSource オブジェクトを使用して、別のインスタンスで実行できる MySQL データベースサーバーにアクセスできます。Tomcat では、各アプリケーションに対してウェブアプリケーションのコンテキスト設定ファイルを作成してインストールすることにより、接続を有効にできます。このファイルは、アプリケーションと、アプリケーションがデータベースとの通信に使用するJDBCリソースとの関係を定義します。詳細については、「コンテキスト コンテナ」を参照してください。

tomcat::context レシピの主な目的は、この設定ファイルを作成することです。

include_recipe 'tomcat::service' node[:deploy].each do |application, deploy| context_name = deploy[:document_root].blank? ? application : deploy[:document_root] template "context file for #{application} (context name: #{context_name})" do path ::File.join(node['tomcat']['catalina_base_dir'], 'Catalina', 'localhost', "#{context_name}.xml") source 'webapp_context.xml.erb' owner node['tomcat']['user'] group node['tomcat']['group'] mode 0640 backup false only_if { node['datasources'][context_name] } variables(:resource_name => node['datasources'][context_name], :webapp_name => application) notifies :restart, resources(:service => 'tomcat') end end

Tomcat クックブックの属性に加えて、このレシピは、スタック設定とデプロイ属性を使用します。 AWS OpsWorks スタックは Configure イベントを使用してインストールします。- AWS OpsWorks スタックサービスは、データバッグを使用するか、各インスタンスで属性を検索してインストールすることで、レシピが通常取得する情報を含む属性を各インスタンスのノードオブジェクトに追加します。それらの属性に含まれるのは、スタック設定、デプロイされるアプリケーション、ユーザーに必要なカスタムデータに関する詳細情報です。レシピは、標準の Chef ノード構文を使用することで、スタック設定およびデプロイ属性からデータを取得できます。詳細については、「スタック設定およびデプロイメント属性」を参照してください。Chef 11.10 スタックの場合、Chef の検索を使用してスタック設定およびデプロイデータを取得することもできます。詳細については、「Chef の検索の使用」を参照してください。

deploy 属性とは、コンソールまたは を通じて定義されたAPI、または によって生成されたデプロイ関連の属性を含む[:deploy]名前空間を指します。 AWS OpsWorks スタックサービス。deploy 属性には、デプロイされる各アプリケーションの属性が含まれています。この属性の名前はアプリケーションの短縮名です。各アプリケーション属性には、ドキュメントのルート ([:deploy][:appname][:document_root]) など、アプリケーションの特性を示す一連の属性が含まれています。

context レシピは、最初に、tomcat::service を呼び出すことにより、この Chef 実行に対してサービスが定義されるようにします。次に、設定ファイルの名前を表す context_name 変数を定義します。拡張子の .xml は除外されます。デフォルトのドキュメントのルートを使用する場合、context_name はアプリケーションの短縮名に設定されます。それ以外の場合は、指定されたドキュメントのルートに設定されます。で説明されている例ではスタックの作成とアプリケーションの実行、ドキュメントのルートを に設定しているため"ROOT"、コンテキストは ROOTで、設定ファイルの名前は ですROOT.xml

レシピの大部分は、デプロイされているアプリケーションのリストを対象として機能し、各アプリケーションに対して webapp_context.xml.erb テンプレートを使用してコンテキスト設定ファイルを作成します。この例では、1 つのアプリケーションのみをデプロイしますが、deploy 属性でアプリケーションのリストとして定義する必要があります。

webapp_context.xml.erb テンプレートは、オペレーティングシステム固有でないため、templatesディレクトリの default サブディレクトリに配置されています。

このレシピは、次のように設定ファイルを作成します。

  • デフォルトの属性値を使用すると、設定ファイル名は context_name.xml に設定され、/etc/tomcat6/Catalina/localhost/ ディレクトリにインストールされます。

    スタック設定属性の['datasources']ノードには 1 つ以上の属性が含まれており、それぞれがコンテキスト名を、関連付けられたアプリケーションがデータベースとの通信に使用するJDBCデータリソースにマッピングします。「」で後述するように、スタックの作成JSON時にノードとその内容はカスタム で定義されますスタックの作成とアプリケーションの実行。この例では、ROOTコンテキスト名を jdbc/mydb という名前のJDBCリソースに関連付ける単一の属性があります。

  • デフォルトの属性値を使用すると、ファイルのユーザーとグループはどちらも、Tomcat パッケージの tomcat (Amazon Linux の場合) または tomcat6 (Ubuntu の場合) によって定義された値に設定されます。

  • template リソースは、['datasources'] ノードが存在し、context_name 属性を含む場合にのみ、設定ファイルを作成します。

  • template リソースは、2 つの変数 resource_namewebapp_name を定義します。

    resource_namecontext_name に関連付けられているリソース名に設定され、webapp_name はアプリケーションの短縮名に設定されます。

  • template リソースは、Tomcat サービスを再起動し、変更を読み込んでアクティブにします。

webapp_context.xml.erb テンプレートは、属性の固有のセットを使用する Context 要素を含む Resource 要素で構成されています。

Resource 属性は、コンテキスト設定の特性を示します。

  • name – JDBCリソース名。 で定義されているresource_name値に設定されますtomcat::context

    たとえば、リソース名は jdbc/mydb に設定されます。

  • 認証タイプ — これらはJDBCDataSource接続の標準設定です。

  • maxActivemaxIdlemaxWait- アクティブおよびアイドル接続の最大数、および接続が返される最大待機時間。

  • username (ユーザーネーム) および password (パスワードパスワード) - データベースのユーザー名およびルートパスワード。deploy 属性から取得されます。

  • driverClassName– JDBCドライバーのクラス名。My SQLドライバーに設定されます。

  • url – 接続 URL。

    プレフィックスはデータベースによって異なります。jdbc:mysql My では 、Postgres SQLjdbc:postgresqlでは 、SQLServer jdbc:sqlserverでは に設定する必要があります。この例では、 を URLに設定します。ここでjdbc:mysql://host_IP_Address:3306:simplejspsimplejsp はアプリケーションの短縮名です。

  • Factory – データベースに必要なDataSourceファクトリSQL。

この設定ファイルの詳細については、Tomcat Wiki の「Using DataSources」トピックを参照してください。