7.8. Cloud-Init を使用した仮想マシンの設定の自動化

Cloud-Init は、ホスト名、ネットワークインターフェース、承認キーなどの仮想マシンの初期設定を自動化するためのツールです。テンプレートをベースにデプロイされた仮想マシンをプロビジョニングする際に、ネットワーク上における競合を回避するために使用することができます。
このツールを使用するには、まず仮想マシンに cloud-init パッケージをインストールする必要があります。インストールの完了後には、ブートプロセス中に Cloud-Init サービスが起動し、設定の指示を検索するようになります。次に 1 回実行 ウィンドウのオプションを使用してそれらの指示を 1 回のみ指定するか、新規仮想マシン仮想マシンの編集テンプレートの編集 ウィンドウのオプションで、仮想マシンが毎回起動するたびにそれらの指示を指定するようすることができます。

7.8.1. Cloud-Init のユースケースシナリオ

Cloud-Init を使用すると、さまざまなシナリオの仮想マシン設定を自動化することができます。一般的なシナリオには以下のような例があります。
テンプレートをベースとして作成された仮想マシン
1 回実行 ウィンドウの 初期起動 のセクションの Clund-Init オプションを使用して、テンプレートをベースに作成された仮想マシンを初期化することができます。これにより、仮想マシンの初回起動時の設定をカスタマイズすることができます。
仮想マシンのテンプレート
新規テンプレート および テンプレートの編集 ウィンドウの 初回起動 タブで Cloud-Init/Sysprep を使用 のオプションを使用して、そのテンプレートをベースに作成される仮想マシンをカスタマイズするオプションを指定することができます。
仮想マシンプール
新規プール ウィンドウの 初回起動 タブで、Cloud-Init/Sysprep を使用 オプションを使用して、仮想マシンプールから取得する仮想マシンをカスタマイズするオプションを指定することができます。これにより、仮想マシンプールから仮想マシンが取得される度に適用される標準の設定項目一式を指定することができます。仮想マシンのベースとなるテンプレートに指定されているオプションは、継承または上書きしたり、仮想マシンプール自体にオプションを指定したりすることができます。

7.8.2. Cloud-Init のインストール

以下の手順は、仮想マシンに Cloud-Init をインストールする方法を説明します。Cloud-Init がインストールされたら、この仮想マシンをベースにしたテンプレートを作成することができます。このテンプレートで作成された仮想マシンは、起動時のホスト名、タイムゾーン、root パスワード、認証キー、ネットワークインターフェース、DNS サービスの設定など、Cloud-Init の機能を活用することができます。

手順7.12 Cloud-Init のインストール

  1. 仮想マシンにログオンします。
  2. 必要なリポジトリーを有効にします。
    • Red Hat Enterprise Linux 6 の場合:
      # subscription-manager repos --enable=rhel-6-server-rpms
      # subscription-manager repos --enable=rhel-6-server-rh-common-rpms
    • Red Hat Enterprise Linux 7 の場合:
      # subscription-manager repos --enable=rhel-7-server-rpms
      # subscription-manager repos --enable=rhel-7-server-rh-common-rpms
  3. cloud-init パッケージと依存関係をインストールします。
    # yum install cloud-init

7.8.3. Cloud-Init を使用したテンプレートの準備

cloud-init パッケージが Linux 仮想マシンにインストールされている限りは、仮想マシンにより Cloud-Init が有効化されたテンプレートを作成することができます。以下の手順に記載されているように、テンプレートの含まれる一連の標準設定を指定するか、Cloud-Init の設定ステップを省略して、このテンプレートをベースにして仮想マシンを作成する際に設定します。

注記

以下の手順では、テンプレートの作成時における Cloud-Init の使用方法について説明していますが、同じ設定を 新規仮想マシン および テンプレートの編集1 回実行 ウィンドウでも使用できます。

手順7.13 Cloud-Init を使用したテンプレートの準備

  1. 仮想マシン タブをクリックして、仮想マシンを 1 つ選択します。
  2. 編集 をクリックします。
  3. 初期起動 タブをクリックし Cloud-Init/Sysprep を使用 のチェックボックスを選択します。
  4. 仮想マシンのホスト名 のテキストフィールドにホスト名を入力します。
  5. タイムゾーンを設定 のチェックボックスを選択し、タイムゾーン のドロップダウンリストからタイムゾーンを選択します。
  6. 認証 のセクションを展開し、設定済みのパスワードを使用 のチェックボックスを選択して既存の認証情報を使用するか、チェックを外して パスワードパスワードを確認 のテキストフィールドに root のパスワードを入力して新しい root パスワードを指定します。
  7. SSH 認証キー のテキストフィールドに 仮想マシン上の承認済みホストのファイルに追加する SSH キーを入力します。
  8. SSH キーを再生成 のチェックボックスを選択して仮想マシン用の SSH キーを再生成します。
  9. ネットワーク のセクションを展開し、DNS サーバー のテキストフィールドに任意の DNS サーバーを入力します。
  10. DNS 検索ドメイン のテキストフィールドに任意の DNS 検索ドメインを入力します。
  11. ネットワーク のチェックボックスを選択して + および - のボタンを使用して仮想マシンにネットワークインターフェースを追加または削除します。
  12. カスタムスクリプト のセクションを展開し、カスタムスクリプト のテキストフィールドに任意のカスタムスクリプトを入力します。
  13. OK をクリックします。
  14. テンプレートを作成 をクリックし、必要に応じてフィールドに入力します。
  15. OK をクリックします。
このテンプレートを使用して、新規仮想マシンをプロビジョニングできるようになりました。

7.8.4. Cloud-Init を使用した仮想マシンの設定の初期化

cloud-init を使用して、Linux 仮想マシンの初期設定を自動化します。Cloud-Init フィールドを使用して、仮想マシンのホスト名、タイムゾーン、root パスワード、認証キー、ネットワークインターフェース、DSN サービスを設定することができます。また、カスタムスクリプト (YAML 形式のスクリプト) を指定して、起動時に実行することもできます。このカスタムスクリプトにより、Cloud-Init でサポートされるが、Cloud-Init フィールドに存在しない追加の Cloud-Init 設定を指定することができます。カスタムスクリプトに関する詳しい情報は、Cloud config examples を参照してください。

手順7.14 Cloud-Init を使用した仮想マシンの設定の初期化

以下の手順では、一連の Cloud-Init の設定が指定された仮想マシンを起動します。仮想マシンがベースにするテンプレートに、関連の設定が含まれる場合には、随時変更を加え、OK をクリックして仮想マシンを起動します。
  1. 仮想マシン タブをクリックして、仮想マシンを 1 つ選択します。
  2. 1 回実行 をクリックします。
  3. 初期起動 セクションを展開し、Cloud-Init チェックボックスを選択します。
  4. 仮想マシンのホスト名 のテキストフィールドにホスト名を入力します。
  5. タイムゾーンを設定 のチェックボックスを選択し、タイムゾーン のドロップダウンメニューからタイムゾーンを選択します。
  6. 設定済みのパスワードを使用 のチェックボックスを選択して既存の認証情報を使用するか、チェックを外して パスワードパスワードを確認 のテキストフィールドに root のパスワードを入力し、新しい root パスワードを指定します。
  7. SSH 認証キー のテキストフィールドに 仮想マシン上の承認済みホストのファイルに追加する SSH キーを入力します。
  8. SSH キーを再生成 のチェックボックスを選択して仮想マシン用の SSH キーを再生成します。
  9. DNS サーバー のテキストフィールドに任意の DNS サーバーを入力します。
  10. DNS 検索ドメイン のテキストフィールドに任意の DNS 検索ドメインを入力します。
  11. ネットワーク のチェックボックスを選択して + および - のボタンを使用して仮想マシンにネットワークインターフェースを追加または削除します。
  12. カスタムスクリプト のテキストフィールドに任意のカスタムスクリプトを入力します。スクリプトで指定した値が適切であることを確認します。適切でない場合にはアクションが失敗します。
  13. OK をクリックします。

注記

仮想マシンに Cloud-Init がインストールされているかを確認するには、仮想マシンを選択して、アプリケーション のサブタブをクリックします。ゲストエージェントがインストールされている場合にのみ表示されます。