第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 イメージは、特定のクラウドプロバイダー向けにカスタマイズされます。次のイメージタイプには、
cloud-initがすでにインストールされているものがあります。- Amazon Machine Image (AMI)
- 仮想ハードディスク(VHD)
QEMU copy-on-write (qcow2)
RHEL Image Builder の詳細は RHEL システムイメージのカスタマイズ を 参照してください。
ほとんどのクラウドプラットフォームは cloud-init をサポートしますが、設定手順とサポートされるオプションは異なります。また、NoCloud 環境向けに cloud-init を設定できます。
さらに、1 つの仮想マシンで cloud-init を設定し、その仮想マシンをテンプレートとして使用し、追加の仮想マシンまたは仮想マシンクラスターを作成できます。
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を含める必要があります。