翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例 1: パッケージのインストール
重要
- AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 にお問い合わせください。 AWS Support でのチーム 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
という名前YAMLの に設定ファイルを作成します.kitchen.yml
。お好きなテキストエディタで ファイルを開きます。.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 つ以上の設定ファイルをインストールします。
-
さまざまなオペレーティングシステムに対して異なるパッケージ名や属性値を指定します。
-
サービスを開始し、必要に応じて再起動します。
以下の例でこれらの問題を処理する方法を説明するとともに、役に立つ操作をいくつかご紹介します。