第2章 cloud-init の概要
cloud-init
ユーティリティーは、システム起動時のクラウドインスタンスの初期化を自動化します。cloud-init
は、さまざまなタスクを実行するように設定できます。
- ホスト名の設定
- インスタンスへのパッケージのインストール
- スクリプトの実行
- デフォルトの仮想マシン (VM) 動作の抑制
前提条件
- Red Hat カスタマーポータル のアカウントに登録している。
cloud-init
は、さまざまなタイプの RHEL イメージで使用できます。以下に例を示します。
-
Red Hat カスタマーポータル から KVM ゲストイメージをダウンロードした場合、そのイメージには
cloud-init
パッケージがプリインストールされています。インスタンスを起動すると、cloud-init
パッケージが有効になります。Red Hat カスタマーポータルの KVM ゲストイメージは、Red Hat Virtualization (RHV)、Red Hat OpenStack Platform (RHOSP)、および Red Hat OpenShift Virtualization で使用することを目的としています。 -
Red Hat カスタマーポータルから RHEL ISO イメージをダウンロードして、カスタムゲストイメージを作成することもできます。この場合、カスタマイズしたゲストイメージに
cloud-init
パッケージをインストールする必要があります。 クラウドサービスプロバイダー (AWS や Azure など) のイメージを使用する必要がある場合は、RHEL Image Builder を使用してイメージを作成します。Image Builder のイメージは、特定のクラウドプロバイダー用にカスタマイズされます。次のイメージタイプには、
cloud-init
がすでにインストールされています。- Amazon Machine Image (AMI)
- 仮想ハードディスク (VHD)
QEMU コピーオンライト (qcow2)
RHEL Image Builder の詳細は、RHEL システムイメージのカスタマイズ を参照してください。
ほとんどのクラウドプラットフォームは cloud-init
をサポートしますが、設定手順とサポートされるオプションは異なります。また、NoCloud 環境向けに cloud-init
を設定できます。
さらに、cloud-init
を 1 台の仮想マシンに設定し、その仮想マシンを追加の仮想マシンまたは仮想マシンのクラスターを作成するためのテンプレートとして使用できます。
Red Hat Virtualization などの特定の Red Hat 製品には、それらの製品用に cloud-init
を設定する手順が文書化されています。
2.1. cloud-init 設定の概要
cloud-init
ユーティリティーは、YAML 形式の設定ファイルを使用して、ユーザー定義のタスクをインスタンスに適用します。インスタンスが起動すると、cloud-init
サービスが起動して、YAML ファイルからの命令を実行します。設定に応じて、タスクは仮想マシンの最初の起動時または後続の起動時に完了します。
特定のタスクを定義するには、/etc/cloud/cloud.cfg
ファイルを設定し、/etc/cloud/cloud.cfg.d/
ディレクトリーにディレクティブを追加します。
cloud.cfg
ファイルには、ユーザーアクセス、認証、システム情報など、さまざまなシステム設定のディレクティブが含まれます。ファイルには、
cloud-init
のデフォルトおよびオプションのモジュールも含まれています。これらのモジュールは、cloud-init
の初期化フェーズ、設定フェーズ、最終フェーズで順番に実行されます。+
cloud.cfg
ファイル内では、3 つのフェーズのモジュールが、cloud_init_modules
、cloud_config_modules
、およびcloud_final_modules
の下にそれぞれリスト表示されます。-
cloud.cfg.d
ディレクトリーに、cloud-init
のディレクティブをさらに追加できます。ディレクティブをcloud.cfg.d
ディレクトリーに追加する場合は、*.cfg
という名前のカスタムファイルにディレクティブを追加し、ファイルの上部に#cloud-config
を常に含める必要があります。