第1章 cloud-init の概要

cloud-init は、システムの起動時にクラウドインスタンスの初期化を自動化するソフトウェアパッケージです。cloud-init は、さまざまなタスクを実行するように設定できます。以下は、cloud-init が実行できるタスクの例です。

  • ホスト名の設定
  • インスタンスへのパッケージのインストール
  • スクリプトの実行
  • デフォルトの仮想マシン動作の抑制

cloud-init の設定用にイメージを取得する場所は、その使用方法によって異なります。

  • cloud-init パッケージは、Red Hat カスタマーポータル からダウンロードした KVM ゲストイメージにインストールされます。インスタンスを起動すると、cloud-init が有効になります。Red Hat カスタマーポータルからダウンロードした KVM ゲストイメージは、Red Hat Virtualization (RHV) および Red Hat OpenStack Platform を対象として使用されます。RHV および RHOSP 用のイメージをゼロから作成することもできます。
  • 別の方法として、Red Hat カスタマーポータルから ISO イメージをダウンロードするか、イメージを作成することができます。この場合は、cloud-init を ISO イメージにインストールする必要があります。
  • クラウドプロバイダー (AWS または Azure など) でイメージを使用する予定の場合は、Red Hat Image Builder を使用してイメージを作成します。Image Builder のイメージは、特定のクラウドプロバイダーで使用するようにカスタマイズされます。イメージタイプ AMI、VHD、および qcow2 には、cloud-init がすでにインストールされています。Image Builder の詳細は、「RHEL システムイメージのカスタマイズ」 を参照してください。

ほとんどのクラウドプラットフォームは cloud-init をサポートしますが、設定手順とサポートされるオプションは異なります。また、NoCloud 環境向けに cloud-init を設定できます。

cloud-init を 1 台の仮想マシン (VM) に設定し、その仮想マシンを追加の仮想マシンまたは仮想マシンのクラスター用のテンプレートとして使用できます。

特定の Red Hat 製品 (Red Hat Virtualization など) では、これらの製品で使用するために cloud-init を設定する手順が文書化されています。

本ガイドでは、cloud-init のドキュメントを参照している箇所が多数あります。cloud-init の完全な情報は、参照用の cloud-init ドキュメントを参照してください。

前提条件

1.1. cloud-init の設定

cloud-init は YAML 形式のファイル命令を使用してタスクを実行します。YAML ファイル内で命令を指定して、cloud-init が実行する初期設定を決定します。インスタンスが起動すると、cloud-init サービスが起動して、命令を検索して実行します。タスクは、cloud-init 設定に基づいて、仮想マシンの初回起動時または後続の起動時に完了します。

/etc/cloud/cloud.cfg ファイルを設定し、/etc/cloud/cloud.cfg.d/ ディレクトリーの下にディレクティブを追加して、タスクを定義します。

  • cloud.cfg ファイルには、ユーザーアクセス、認証、システム情報用などのディレクティブが含まれます。

    ファイルには、cloud-init のデフォルトおよびオプションのモジュールも含まれています。モジュールは、cloud-init 初期化フェーズ、設定フェーズ、最終フェーズを含む 3 つのフェーズ内で順番に実行されます。cloud.cfg ファイル内では、3 つのフェーズのモジュールが、cloud_init_modulescloud_config_modules、および cloud_final_modules の下にそれぞれ一覧表示されます。

  • cloud.cfg.d ディレクトリーでは、cloud-init の追加ディレクティブを追加できます。cloud.cfg.d ディレクトリーにディレクティブを追加する場合、通常は *.cfg という名前のファイルに追加し、ファイルの上部に #cloud-config を常に含めます。