第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を常に含める必要があります。