IBM Cloud Docs
cloud-init 対応イメージでのプロビジョニング

cloud-init 対応イメージでのプロビジョニング

仮想サーバーをオーダーする場合、現在、多くのオペレーティング・システムでは、cloud-init 対応イメージを使用してプロビジョニング時間の最適化が行われています。 また、cloud-init に対応させたカスタマイズ・イメージをインポートすることもできます。

現在は、以下のオペレーティング・システムが、アドオンなしで仮想サーバーを注文した場合にデフォルトで cloud-init 対応イメージになります (アドオンには、追加のソフトウェア、ポストプロビジョニング・スクリプト、拡張モニタリングが含まれます)。

  • CentOS 7
  • Debian 10、11
  • Red Hat Enterprise Linux 7.x, 8.x, 9.x
  • Ubuntu 20.04, 22.04
  • Windows Server 2016、2019、2022

cloud-init 対応のオペレーティング・システムで仮想サーバーをオーダーするとき、カスタム・プロビジョニング・スクリプトを使用してユーザー・データまたはメタデータを追加することができます。 オーダー・フォームの「ユーザー・データ」フィールドに、サーバーのオプション cloud-init ユーザー・データまたはオプション・メタデータを入力します。

開始前に

まず、デバイス・メニューに移動して、タスクを完了するための正しいアカウント権限があることを確認します。

  • コンソールのデバイス・メニューに移動します。 詳しくは、デバイスへのナビゲートを参照してください。
  • 必要なアカウント権限とデバイス・アクセス権限があることを確認します。 アカウントの所有者、またはクラシック・インフラストラクチャーの**「ユーザーの管理」**権限を持つユーザーのみが、権限を調整できます。

許可について詳しくは、クラシック・インフラストラクチャー権限およびデバイス・アクセス権限の管理を参照してください。

カスタマイズされた cloud-init 対応イメージのインポート

cloud-init 対応のカスタマイズ・イメージを作成した場合は、IBM Cloud® infrastructure customer portalの「イメージのインポート」ページで、そのイメージを cloud-init イメージとして指定できます。

イメージ・テンプレートの「イメージのインポート」ページにアクセスし、イメージに cloud-init 対応のマークを付けるには、以下の手順を実行します。

  1. 「デバイス」メニューから、「管理」 > **「イメージ」**を選択します。
  2. **「イメージのインポート」**タブをクリックします。
  3. cloud-init 対応イメージをインポートするために必要な情報を入力し、**「オペレーティング・システム」ドロップダウン・ボックスの近くにある「Cloud-init」**チェック・ボックスを選択します。 イメージのインポートについて詳しくは、イメージのインポートを参照してください。

イメージ・テンプレートを cloud-init 対応としてマーク付け

cloud-init 対応の既存の VHD イメージ・テンプレートがある場合は、イメージ・テンプレートの詳細ページで、それを cloud-init 対応として指定できます。

イメージ・テンプレートにアクセスし、それに cloud-init 対応のマークを付けるには、以下の手順を実行します。

  1. 「デバイス」メニューから、「管理」 > **「イメージ」**を選択します。
  2. テンプレートのリストから、更新するイメージ・テンプレート名をクリックします。
  3. 「イメージ・テンプレートの詳細」ページで、**「Cloud-init」ヘッダーの下の「有効」チェック・ボックスを選択し、「更新」**をクリックします。

イメージが暗号化されている場合、暗号化イメージは cloud-init に対応している必要があるので、**「Cloud-init」**チェック・ボックスは既にデフォルトで選択されています。

cloud-init でプロビジョンされた仮想サーバーから作成されたイメージ・テンプレートの操作

Cloud-init が実行されるのは、通常、1 回のみです。 しかし、cloud-init 対応イメージから仮想サーバーをプロビジョンした後に、その仮想サーバーからイメージ・テンプレートを作成すると、UUID が記録されます。 そのイメージ・テンプレートを使用して別の仮想サーバーを作成すると、cloud-init が再び実行されます。

cloud-init 対応のイメージ・テンプレートの作成

イメージの構成については、 cloud-init の資料を参照してください。

データ・ソースについて詳しくは、 データ・ソースを参照してください。 IBM Cloud cloud-init イメージは、 Config Drive-バージョン 2 データ・ソースを使用してメタデータを提供することで環境用に作成されます。

Linux 要件

cloud-init が有効になっている Linux イメージには、次の要件があります。

  • Cloud-init バージョン 0.7.7 以上が必要。
  • Cloud-init イメージが仮想サーバー・インスタンスへのログインに SSH を使用するように構成されていること。

次のサンプル・ファイル cloud.cfg は、Red Hat Enterprise Linux 7 デプロイメントで使用される設定を示しています。 この設定は、Red Hat Enterprise Linux 7 上の cloud-init インストール・パッケージのデフォルト設定とは異なります。

# cat /etc/cloud/cloud.cfg
# Configure the Datasource for both instances
datasource_list: [ ConfigDrive ]

user: root
ssh_pwauth: True
disable_root: False
manage_etc_hosts: True

system_info:
 # This will affect which distro class gets used
 distro: rhel
 # Other config here will be given to the distro class and/or path classes
 paths:
    cloud_dir: /var/lib/cloud/
    templates_dir: /etc/cloud/templates/

cloud_init_modules:
 - migrator
 - seed_random
 - bootcmd
 - write-files
 - disk_setup
 - mounts
 - ca-certs
 - rsyslog
 - users-groups
 - ssh

cloud_config_modules:
# Emit the cloud config ready event
# this can be used by upstart jobs for 'start on cloud-config'.
 - snap_config
 - locale
 - set-passwords
 - ntp
 - timezone
 - disable-ec2-metadata
 - set_hostname
 - update_hostname
 - update_etc_hosts
 - runcmd

# The modules that run in the 'final' stage
cloud_final_modules:
 - snappy
 - package-update-upgrade-install
 - fan
 - lxd
 - puppet
 - chef
 - salt-minion
 - mcollective
 - rightscale_userdata
 - scripts-vendor
 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user
 - ssh-authkey-fingerprints
 - keys-to-console
 - phone-home
 - final-message
 - power-state-change

Windows 要件

  • IBM Cloud インフラストラクチャー内でパブリック・ネットワークおよびプライベート・ネットワークをサポートするための Cloudbase-init メタデータ・サービス。 このサービスは、Windows 仮想サーバーの資格情報を使用してカスタマー・ポータルの更新も行います。 このサービスには、次のサイトからアクセスできます。 IBM Cloud-cloudbase-init

  • ご使用環境で Vyatta を使用している場合は、API ロード・バランサーへの API 呼び出しを許可するように Vyatta を構成する必要があります。

  • 次のコマンドを実行して、イメージの sysprep を行います。

    C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\SetSetupComplete.cmd
    
    cd "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\"
    C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:Unattend.xml