レシピを使用したスクリプトの実行 - AWS OpsWorks

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

レシピを使用したスクリプトの実行

重要

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

必要なカスタマイズタスクを実行するスクリプトがすでにある場合、通常、レイヤーを拡張する最も簡単な方法は、スクリプトを実行する簡単なレシピを実装することです。その後、適切なライフサイクルイベント (通常は Setup または Deploy) にレシピを割り当てることも、execute_recipes スタックコマンドを使用してレシピを手動で実行することもできます。

次の例では Linux インスタンスでシェルスクリプトを実行しますが、Windows スクリプトを含む他のタイプの PowerShell スクリプトでも同じアプローチを使用できます。

cookbook_file "/tmp/lib-installer.sh" do source "lib-installer.sh" mode 0755 end execute "install my lib" do command "sh /tmp/lib-installer.sh" end

cookbook_file リソースは、クックブックの files ディレクトリのサブディレクトリに保存されたファイルを表します。このファイルはインスタンスの指定した場所に転送されます。この例では、シェルスクリプト lib-installer.sh をインスタンスの /tmp ディレクトリに転送し、ファイルのモードを 0755 に設定します。詳細については、「cookbook_file」を参照してください。

execute リソースは、シェルコマンドなどのコマンドを表します。この例では lib-installer.sh を実行します。詳細については、「execute」を参照してください。

スクリプトをレシピに組み込んで実行することもできます。次の例では Bash スクリプトを実行しますが、Chef では Csh、Perl、Python、Ruby もサポートしています。

script "install_something" do interpreter "bash" user "root" cwd "/tmp" code <<-EOH #insert bash script EOH end

script リソースはスクリプトを表します。この例では Bash インタープリタを指定し、ユーザーを "root" に、作業ディレクトリを /tmp にそれぞれ設定します。次に、code ブロックで Bash スクリプトを実行します。このブロックには、行を必要な数だけ含めることができます。詳細については、「script」を参照してください。

レシピを使用してスクリプトを実行する方法の詳細については、「例 7: コマンドとスクリプトの実行」を参照してください。Windows インスタンスで PowerShell スクリプトを実行する方法の例については、「」を参照してくださいWindows PowerShell スクリプトの実行