使用 cloud-init 將使用者新增至 Azure 上的 Linux 虛擬機器
適用於:✔️ Linux VM ✔️ 彈性擴展集
本文會示範如何在 Azure 佈建期間,使用 cloud-init 在虛擬機器 (VM) 上或虛擬機器擴展集 (VMSS) 上新增使用者。 一旦 Azure 佈建資源,此 cloud-init 指令碼就會在初次開機時執行。 如需深入了解 cloud-init 如何以原生方式在 Azure 和支援的 Linux 散發版本中運作,請參閱 cloud-init 概觀。
使用 cloud-init 將使用者新增至 VM
針對任何新的 Linux 虛擬機器,首要工作之一就是為您自己新增其他使用者,以避免使用「根」。 SSH 金鑰是提供安全性和可用性的最佳做法。 此 cloud-init 指令碼會將金鑰新增至 ~/.ssh/authorized_keys 檔案。
若要將使用者新增至 Linux 虛擬機器,請在目前的殼層中建立名為 cloud_init_add_user.txt 的檔案,然後貼上下列設定。 針對此案例,在 Cloud Shell 中 (而不是本機電腦上) 建立該檔案。 您可以使用任何您想要的編輯器。 請確定已正確複製整個 cloud-init 檔案,特別是第一行。 您需要提供您自己的公開金鑰 (例如 ~/.ssh/id_rsa.pub 的內容),以作為 ssh-authorized-keys:
的值 - 這裡已將其縮減以簡化範例。
#cloud-config
users:
- default
- name: myadminuser
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- ssh-rsa AAAAB3<snip>
注意
#cloud-config 檔包含 - default
參數。 這會將使用者附加至佈建期間建立的現有管理使用者。 如果您建立的使用者不含 - default
參數 - 由 Azure 平台建立的自動產生管理使用者就會遭到覆寫。
部署此映像前,您必須使用 az group create 命令建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組。
az group create --name myResourceGroup --location eastus
現在,請使用 az vm create 建立 VM 並以 --custom-data cloud_init_add_user.txt
指定 cloud-init 檔案,如下所示:
az vm create \
--resource-group myResourceGroup \
--name vmName \
--image imageCIURN \
--custom-data cloud_init_add_user.txt \
--generate-ssh-keys
注意
請據以取代 myResourceGroup、vmName 和 imageCIURN 值。 確認已選擇 Cloud-init 的映像。
以 SSH 連線到顯示於由上述命令所產生之輸出中的 VM 公用 IP 位址。 輸入您自己的 user 和 publicIpAddress,如下所示:
ssh <user>@<publicIpAddress>
若要確認已將您的使用者新增至 VM 與指定的群組,請檢視 /etc/group 檔案的內容,如下所示:
sudo cat /etc/group
下列範例輸出顯示來自 cloud_init_add_user.txt 檔案的使用者已新增至 VM 與適當的群組:
root:x:0:
<snip />
sudo:x:27:myadminuser
<snip />
myadminuser:x:1000:
下一步
如需其他設定變更的 cloud-init 範例,請參閱下列文件: