cloud-init を使用して Azure の Linux VM のホスト名を設定する

適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット

この記事では、Azure でのプロビジョニング時に cloud-init を使用して、仮想マシン (VM) または仮想マシン スケール セット (VMSS) で特定のホスト名を構成する方法を示します。 これらの cloud-init スクリプトは、Azure によってリソースがプロビジョニングされた後の最初の起動時に実行されます。 cloud-init が Azure およびサポートされている Linux ディストリビューションでネイティブに動作する方法の詳細については、cloud-init の概要に関するページをご覧ください

cloud-init でホスト名を設定する

既定では、Azure で新しい仮想マシンを作成するときに、ホスト名は VM 名と同じです。 Azure で az vm create を使用して VM を作成するときに cloud-init スクリプトを実行してこの既定のホスト名を変更するには、--custom-data スイッチで cloud-init ファイルを指定します。

実行中のアップグレード プロセスを表示するには、現在のシェルで cloud_init_hostname.txt というファイルを作成し、次の構成を貼り付けます。 この例では、ローカル コンピューター上にない Cloud Shell でファイルを作成します。 任意のエディターを使用することができます。 cloud-init ファイル全体 (特に最初の行) が正しくコピーされたことを確認してください。

#cloud-config
fqdn: myhostname

このイメージをデプロイする前に、az group create コマンドを使用してリソース グループを作成する必要があります。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。

az group create --name myResourceGroup --location eastus

ここで、az vm create で VM を作成し、次のように --custom-data cloud_init_hostname.txt で cloud-init ファイルを指定します。

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_hostname.txt \
  --generate-ssh-keys

注意

myResourceGroupvmNameimageCIURN の値を適宜置き換えます。 Cloud-init を含むイメージが選択されていることを確認します。

作成されると、Azure CLI は VM に関する情報を表示します。 publicIpAddress を使用して VM に SSH 接続します。 実際のアドレスを次のように入力します。

ssh <user>@<publicIpAddress>

VM 名を表示するには、hostname コマンドを次のように使用します。

sudo hostname

VM は、次の出力の例で示すように、cloud-init ファイルで設定された値としてホスト名をレポートします。

myhostname

次のステップ

構成変更の cloud-init の他の例については、以下をご覧ください。