10.7. プロビジョニングでの VMware cloud-init と userdata テンプレートの使用


Cloud-initUserdata テンプレートと VMware を併用して、ユーザーデータを新規の仮想マシンに挿入し、VMware をさらにカスタマイズして、VMware がホストする仮想マシンを使用して Satellite にコールバックできるようになります。

同じ手順を使用して、Satellite 内で、ワークフローに変更をいくつか加えて、VMware コンピュートリソースを設定できます。

図10.1 VMware cloud-init プロビジョニングの概要

VMware cloud-init プロビジョニングの概要

Satellite で VMware プロビジョニング用にコンピュートリソースとイメージを設定する場合に、プロビジョニングのイベントは以下の順番に発生します。

  • ユーザーが Satellite Web UI、API、または Hammer を使用して 1 つ以上の仮想マシンをプロビジョニングする。
  • Satellite が VMware vCenter を呼び出して仮想マシンテンプレートのクローンを作成する。
  • Satellite userdata のプロビジョニングテンプレートがカスタマイズされたアイデンティティー情報を追加する。
  • プロビジョニングが完了すると、cloud-init プロビジョニングテンプレートが仮想マシンに対して、cloud-init の実行時に Capsule にコールバックするように指示を出す。
  • VMware vCenter がこのテンプレートのクローンを仮想マシンに作成する。
  • VMware vCenter がホスト名、IP、DNS など、仮想マシンの ID のカスタマイズを適用する。
  • 仮想マシンがビルドされて、cloud-init が呼びされ、ポート 80 で Satellite にコールバックしてから、443 にリダイレクトする。

前提条件

  • 必要な接続ができるように、ポートとファイアウォールが設定されている。cloud-init サービスがあるので、仮想マシンを Capsule に登録している場合でさえも、仮想マシンは常に Satellite に対してコールバックします。詳細は、オンラインネットワーク環境での Satellite Server のインストールポートとファイアウォールの要件 および Capsule Server のインストールポートとファイアウォールの要件 を参照してください。
  • Satellite Server の代わりに Capsule Server を使用する場合は、Capsule Server が適切に設定されていることを確認してください。

    重要

    Capsule Server を Satellite Server 上の信頼できるプロキシーのリストに追加することが重要です。

    詳細は、Capsule Server のインストールホストの登録とプロビジョニングのための Capsule の設定 を参照してください。

  • 以下の設定ファイルをバックアップします。

    • /etc/cloud/cloud.cfg.d/01_network.cfg
    • /etc/cloud/cloud.cfg.d/10_datasource.cfg
    • /etc/cloud/cloud.cfg

Userdata および Cloud-init テンプレートとオペレーティングシステムの関連付け

  1. Satellite Web UI で、Hosts > Templates > Provisioning Templates に移動します。
  2. CloudInit default テンプレートを検索し、その名前をクリックします。
  3. Association タブをクリックします。
  4. テンプレートを適用するすべてのオペレーティングシステムを選択し、Submit をクリックします。
  5. UserData open-vm-tools テンプレートに対して上記の手順を繰り返します。
  6. Hosts > Provisioning Setup > Operating Systems に移動します。
  7. プロビジョニングに使用するオペレーティングシステムを選択します。
  8. Templates タブをクリックします。
  9. Cloud-init template リストから CloudInit default を選択します。
  10. User data template リストから UserData open-vm-tools を選択します。
  11. Submit をクリックして変更を保存します。

cloud-init テンプレートを使用するためのイメージの準備

イメージを準備するには、先に仮想マシンに必要な設定を行ってからでないと、Satellite で使用するイメージとして保存できません。

プロビジョニングに cloud-init テンプレートを使用するには、cloud-init をインストールして、有効化し、Satellite Server に対してコールバックを行うように、仮想マシンを設定する必要があります。

セキュリティー上の理由から CA 証明書をインストールして、全通信に HTTPS を使用するようにする必要があります。この手順には、不要な情報がプロビジョニングに使用するイメージに転送されないように、仮想マシンをクリーンアップする手順が含まれます。

cloud-init が含まれるイメージの場合は、cloud-init がデフォルトで無効になっているので、cloud-init が Satellite と通信できるように以下の手順を実行する必要があります。

手順

  1. イメージの作成に使用する仮想マシンに、必要なパッケージをインストールします。

    # dnf install cloud-init open-vm-tools perl-interpreter perl-File-Temp

    Red Hat Enterprise Linux 9 では、ネットワーク接続に dbus-tools パッケージも必要です。

  2. cloud-init によるネットワーク設定を無効にします。

    # cat << EOM > /etc/cloud/cloud.cfg.d/01_network.cfg
    network:
      config: disabled
    EOM
  3. Satellite からデータをフェッチするように cloud-init を設定します。

    # cat << EOM > /etc/cloud/cloud.cfg.d/10_datasource.cfg
    datasource_list: [NoCloud]
    datasource:
      NoCloud:
        seedfrom: https://satellite.example.com/userdata/
    EOM

    Capsule Server を通じてプロビジョニングする場合は、seedfrom オプションで Capsule Server の URL (https://capsule.example.com:9090/userdata/ など) を使用します。

  4. cloud-init で使用するモジュールを設定します。

    # cat << EOM > /etc/cloud/cloud.cfg
    cloud_init_modules:
     - bootcmd
     - ssh
    
    cloud_config_modules:
     - runcmd
    
    cloud_final_modules:
     - scripts-per-once
     - scripts-per-boot
     - scripts-per-instance
     - scripts-user
     - phone-home
    
    system_info:
      distro: rhel
      paths:
        cloud_dir: /var/lib/cloud
        templates_dir: /etc/cloud/templates
      ssh_svcname: sshd
    EOM
  5. イメージの CA 証明書を有効にします。

    # update-ca-trust enable
  6. Satellite Server から katello-server-ca.crt ファイルをダウンロードします。

    # wget -O /etc/pki/ca-trust/source/anchors/cloud-init-ca.crt https://satellite.example.com/pub/katello-server-ca.crt

    Capsule Server を通じてプロビジョニングする場合は、Capsule Server (https://capsule.example.com/pub/katello-server-ca.crt など) からファイルをダウンロードします。

  7. 証明書のレコードを更新します。

    # update-ca-trust extract
  8. rsyslog サービスおよび auditd サービスを停止します。

    # systemctl stop rsyslog
    # systemctl stop auditd
  9. イメージ上のパッケージを消去します。

    • Red Hat Enterprise Linux 8 以降の場合:

      # dnf remove --oldinstallonly
    • Red Hat Enterprise Linux 7 以前の場合:

      # package-cleanup --oldkernels --count=1
      # dnf clean all
  10. ログスペースの削減、古いログの削除、ログの切り詰めを実行します。

    # logrotate -f /etc/logrotate.conf
    # rm -f /var/log/*-???????? /var/log/*.gz
    # rm -f /var/log/dmesg.old
    # rm -rf /var/log/anaconda
    # cat /dev/null > /var/log/audit/audit.log
    # cat /dev/null > /var/log/wtmp
    # cat /dev/null > /var/log/lastlog
    # cat /dev/null > /var/log/grubby
  11. udev ハードウェアルールを削除します。

    # rm -f /etc/udev/rules.d/70*
  12. 既存のネットワーク設定に関連する ifcfg スクリプトを削除します。

    # rm -f /etc/sysconfig/network-scripts/ifcfg-ens*
    # rm -f /etc/sysconfig/network-scripts/ifcfg-eth*
  13. SSH ホストキーを削除します。

    # rm -f /etc/ssh/ssh_host_*
  14. root ユーザーの SSH 履歴を削除します。

    # rm -rf ~root/.ssh/known_hosts
  15. root ユーザーの shell 履歴を削除します。

    # rm -f ~root/.bash_history
    # unset HISTFILE
  16. この仮想マシンからイメージを作成します。
  17. イメージを Satellite に追加します
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る