我正在运行一个具有非常特殊网络配置的 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