翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例 1: パッケージのインストール
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、AWS re:Post
パッケージのインストールはレシピのもっとも一般的な用途の 1 つで、パッケージによっては非常にシンプルにできます。たとえば、以下のレシピは Linux システムに Git をインストールします。
package 'git' do action :install end
package リソースpackage_name 属性のデフォルト値であり、これでパッケージを識別します。install アクションがプロバイダーにパッケージをインストールするように指示します。install を省略することでコードをよりシンプルにできます。これは package リソースのデフォルトアクションです。レシピを実行すると、Chef は適切なプロバイダーを使用してパッケージをインストールします。例として使用する Ubuntu システムでは、プロバイダーは apt-get を呼び出して Git をインストールします。
注記
Windows システムにソフトウェアをインストールするには、多少異なる手順が必要です。詳細については、「Windows ソフトウェアのインストール」を参照してください。
Test Kitchen を使用して Vagrant でこのレシピを実行するには、まずクックブックを設定し Test Kitchen を初期化して設定する必要があります。以下にあげるのは Linux システム用ですが、Windows および Macintosh システムでも基本的に手順は同様です。ターミナルウィンドウを開くことから始めます。この章の例ではすべてコマンドラインツールを使用します。
クックブックを準備するには
-
ホームディレクトリで、
opsworks_cookbooksという名前のサブディレクトリを作成します。この章でのクックブックはすべてここに置きます。次にこのクックブック用のサブディレクトリinstallpkgを作成し、そのディレクトリに移動します。 -
installpkgで、以下のコードを含むmetadata.rbというファイルを作成します。name "installpkg" version "0.1.0"この章の例ではわかりやすいようにクックブックの名前とバージョンのみを指定しますが、
metadata.rbには幅広いクックブックのメタデータを含めることができます。詳細については、「クックブックのメタデータについて」を参照してください。 注記
必ず Test Kitchen を初期化する前に
metadata.rbを作成してください。デフォルトの設定ファイルを作成するためにこのデータを使用します。 -
installpkgでkitchen initを実行し、Test Kitchen を初期化してデフォルトの Vagrant ドライバをインストールします。 -
kitchen initコマンドは、installpkgという名前の.kitchen.ymlに YAML 設定ファイルを作成します。お好きなテキストエディタで ファイルを開きます。.kitchen.ymlには、レシピを実行するシステムを指定するplatformsセクションが含まれています。Test Kitchen はインスタンスを作成して、各プラットフォームで指定されたレシピを実行します。注記
デフォルトでは、Test Kitchen は一度に 1 つのプラットフォームでレシピを実行します。インスタンスを作成するいずれかのコマンドに
-p引数を追加した場合、Test Kitchen はそれぞれのプラットフォームで平行してレシピを実行します。この例では単一のプラットフォームが有効です。したがって
.kitchen.ymlを編集してcentos-6.4プラットフォームを削除します。.kitchen.ymlファイルは以下のようになります。--- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:Test Kitchen は
.kitchen.ymlの実行リストにあるレシピのみを実行します。レシピは[形式を使用して識別します。cookbook_name::recipe_name]recipe_nameは.rb拡張子を省略します。初期状態で、.kitchen.yml実行リストにはクックブックのデフォルトのレシピであるinstallpkg::defaultが含まれています。これはこれから実行するレシピです。実行リストを変更する必要はありません。 -
installpkgという名前のrecipesのサブディレクトリを作成します。クックブックにレシピが含まれる場合 (たいていは含まれますが)、
recipesサブディレクトリに置かれている必要があります。
これで、クックブックにレシピを追加し、Test Kitchen を使用してインスタンスで実行できるようになりました。
レシピを実行するには
-
セクションの冒頭にある Git インストールコード例を含む
default.rbという名前のファイルを作成し、サブディレクトリrecipesに保存します。 -
installpkgディレクトリでkitchen convergeを実行します。このコマンドはVagrantで新しいUbuntuインスタンスを起動し、クックブックをインスタンスにコピーし、.kitchen.ymlの実行リストにあるレシピを実行するためにChefの実行を開始します。 -
レシピが成功したことを確認するために、
kitchen loginを実行してインスタンスへの SSH 接続を開きます。次にgit --versionを実行して、Git が正しくインストールされたことを確認します。ワークステーションに戻るには、exitを実行します。 -
完了したら、
kitchen destroyを実行してインスタンスをシャットダウンします。以下の例では、別のクックブックを使用します。
この例は手始めには適していますが、非常にシンプルです。インストールがより複雑なパッケージもあります。以下の一部またはすべてを実行しなければならない場合もあります。
-
ユーザーを作成して設定します。
-
データやログなどのために 1 つ以上のディレクトリを作成します。
-
1 つ以上の設定ファイルをインストールします。
-
さまざまなオペレーティングシステムに対して異なるパッケージ名や属性値を指定します。
-
サービスを開始し、必要に応じて再起動します。
以下の例でこれらの問題を処理する方法を説明するとともに、役に立つ操作をいくつかご紹介します。