我正在運行一個具有非常特殊的網路配置的 OpenStack 雲,這使得實例無法與外界的任何內容進行通信,直到我登入它並設定幾個設定檔之後。
結果,我不能使用 SSH 金鑰登入執行個體。有沒有辦法在 Ubuntu 12.04(必須是 12.04)雲端映像上設定預設密碼,以便我可以直接從 Horizon 控制台登入?我嘗試使用以下概述的程序https://ask.openstack.org/en/question/5531/defining-default-user-password-for-ubuntu-cloud-image/但它在 Ubuntu 12.04 上不起作用...但它在 14.04 上起作用。
答案1
18.04 設定步驟
簡而言之,您需要:
sudo apt-get install cloud-image-utils
cat >user-data <<EOF
#cloud-config
password: asdfqwer
chpasswd: { expire: False }
ssh_pwauth: True
EOF
cloud-localds user-data.img user-data
# user-data.img MUST come after the rootfs.
qemu-system-x86_64 \
-drive file=ubuntu-18.04-server-cloudimg-amd64.img,format=qcow2 \
-drive file=user-data.img,format=raw
...
現在您可以透過以下方式登入:
- 使用者名稱:
ubuntu
- 密碼:
asdfqwer
在這裡,我描述了一個完整的、最小化的、詳細的 QEMU 工作範例:網路上有預建的 QEMU Ubuntu 映像(32 位元)嗎?
答案2
您可以先從已有金鑰對的 virtualbox 或 vmware 建立虛擬機器 (VM) 映像。由於您可以自由控制您的 virtualbox 或 vmware,因此您可以從虛擬主機取得金鑰對。
然後將金鑰對匯入到您的 openstack 中。
上傳此虛擬機器鏡像
從此映像建立一個實例(A)
從雲端鏡像建立一個實例(B),並注入金鑰對(從步驟 1 上傳)
開啟實例A的控制台(在horizon中),現在您可以從A連接實例B,因為B已經注入了A的公鑰
登入後,您可以為實例B設定環境並變更配置
答案3
您的鏡像是:focal-server-cloudimg-amd64.img
rm -f vm_0001-focal-server-cloudimg-amd64.qcow2
qemu-img create -f qcow2 -F qcow2 -b focal-server-cloudimg-amd64.img vm_0001-focal-server-cloudimg-amd64.qcow2 20G
qemu-img info vm_0001-focal-server-cloudimg-amd64.qcow2
VM_NAME="ubuntu-20-cloud-image"
USERNAME="programster"
PASSWORD="thisok"
echo "#cloud-config
system_info:
default_user:
name: $USERNAME
home: /home/$USERNAME
password: $PASSWORD
chpasswd: { expire: False }
hostname: $VM_NAME
# configure sshd to allow users logging in using password
# rather than just keys
ssh_pwauth: True
" | sudo tee user-data
cloud-localds ./cidata.iso user-data
qemu-system-x86_64 -m 2048 -smp 4 -hda ./vm_0001-focal-server-cloudimg-amd64.qcow2 \
-cdrom ./cidata.iso -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5555-:22 -nographic