第2章 cloud-init の概要
cloud-init
ユーティリティーは、最初の起動時に仮想マシン (VM) (インスタンスとも呼ばれます) の初期化と設定を自動化します。次のようなタスクを実行するように cloud-init
を設定できます。
- ホスト名、ネットワークインターフェイス、およびユーザーアカウントの設定
- インスタンスへのパッケージのインストール
- スクリプトの実行
- デフォルトの仮想マシン (VM) アクションの変更
前提条件
- Red Hat アカウント が作成されている。
cloud-init
は、次のようにさまざまなタイプの RHEL イメージで使用できます。
-
KVM
qcow2
ゲストイメージは、cloud-init
とともにプリインストールされている。インスタンスを起動すると、cloud-init
ユーティリティーが自動的に有効になります。Red Hat カスタマーポータルの KVM ゲストイメージは、Red Hat Virtualization (RHV)、Red Hat OpenStack Platform (RHOSP)、および Red Hat OpenShift Virtualization で使用できます。 -
Red Hat カスタマーポータルから Red Hat ISO イメージ をダウンロードしてカスタムゲストイメージを作成する場合は、そのカスタマイズされたゲストイメージに
cloud-init
パッケージをインストールしておく。 AWS、GCP、Azure などの認定クラウドサービスプロバイダー (CCSP) のイメージを使用する場合は、RHELImage Builder を使用してイメージを作成する。Image Builder は、特定のクラウドプロバイダー向けにカスタマイズされたイメージを管理します。
cloud-init
で次のイメージ形式がプリインストールされています。- Amazon Machine Image (AMI)
- 仮想ハードディスク (VHD)
- QEMU コピーオンライト (qcow2)
ほとんどのクラウドプラットフォームは cloud-init
をサポートしますが、設定手順とサポートされるオプションは異なります。
または、NoCloud
環境用に cloud-init
を設定することもできます。NoCloud
を使用すると、ローカル設定 (ネットワークアクセスなし) とリモートサーバーから取得された設定の両方のクラウドインスタンスを管理できます。さらに、1 つの仮想マシンで 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_modules
-
cloud_config_modules
-
cloud_final_modules
-
-
cloud.cfg.d
ディレクトリーにcloud-init
の追加ディレクティブを含めることができます。 -
ディレクティブを
cloud.cfg.d
ディレクトリーに追加する場合は、*.cfg
という名前のカスタムファイルにディレクティブを追加し、ファイルの上部に#cloud-config
を常に含めます。
詳細は、cloud.cfg
のサンプルファイルを参照してください。cloud.cfg ファイルの例 を参照してください。