Edd*_*onk 6 virtualization linux ubuntu virtualbox vmware-vsphere
我正在尝试使用 VirtualBox 从 .ova 开始,并希望稍后在 vSphere 中导入相同的映像。
Ubuntu 云映像不再有标准密码。
我想编辑 .ova 以配置密码。(以及后来的 SSH 密钥)
下载的 .ova 确实有密码属性。
我找到了一个名为cot
(Common OVF tool)的工具来编辑属性。
我试过:
cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p password=ubuntu
Run Code Online (Sandbox Code Playgroud)
也试过:
cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p user-data="password: ubuntu"
Run Code Online (Sandbox Code Playgroud)
两次尝试都没有成功。(无法登入)
是否有一个步骤可以将此配置应用到图像中,或者这些属性是否在图像启动时传递给图像?
有任何想法吗?
更新:(背景问题的答案)
如果您可以在问题中添加背景信息,这将很有用,例如:
如果你使用的是Ubuntu Cloud Images,你应该使用Cloud-Init来设置初始配置,它允许你设置:
...除其他功能外。
可以通过内联命令的用户数据标志或使用要应用的设置调用 YAML 类型配置文件来配置 Cloud-init 的行为。
这可以在您内联运行时通过--user-data
or--user-data-file
参数完成,或者您可以使用 ISO 来完成。我将展示 ISO 安装模式的步骤。
我不会为 root 或用户设置密码,而是通过 ssh 公钥创建一个具有 SSH 访问权限的新用户,并允许用户 sudo 权限。
这是一个示例用户数据云配置文件,使用您的文本编辑器创建它,并尊重名称或种子文件将不是有效的种子并且无法工作。
#cloud-config
users:
- default
- name: eddypronk
ssh-authorized-keys:
- <your user public key here>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
Run Code Online (Sandbox Code Playgroud)
您还可以拥有主机名和其他定义的元数据:
instance-id: set-an-unique-instance-name-id
local-hostname: set-the-hostname
Run Code Online (Sandbox Code Playgroud)
创建文件后,生成一个 iso 文件以从虚拟管理器加载为 cdrom 或 dvd:
genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data
Run Code Online (Sandbox Code Playgroud)
您需要genisoimage
为此或此其他选项的cloud-utils
工具cloud-localds
:
cloud-localds my-seed.img my-user-data my-meta-data
Run Code Online (Sandbox Code Playgroud)
请记住,如果您将种子 / nocloud iso 挂载,它将用数据文件中的设置覆盖 VM 中的设置。如果您更改了用户数据或元数据中的任何内容,则需要重建 iso 或 img。
您现在可以启动 VM。默认情况下,您无法使用用户名和密码通过 ssh 连接到机器或通过 VNC 控制台(Virtualbox 中的“图形”VM 窗口)连接。您必须在 ssh 中使用公钥/私钥身份验证方法。这意味着在用户数据YAML 文件中启用具有公共 ssh 密钥的用户。此外,ubuntu 帐户的 sudo 权限提升是无密码的,但默认情况下该帐户是锁定的。
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
...
Run Code Online (Sandbox Code Playgroud)
现在您可以登录:
ubuntu
asdfqwer
在这里,我描述了一个完整的最小详细工作 QEMU 示例:https : //askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
这是可能的解决方案的链接https://techglimpse.com/nova-boot-instance-with-password/
创建一个名为userdata.txt的文件,内容如下:
#cloud-config
password: mypasswd
chpasswd: { expire: False }
ssh_pwauth: True
Run Code Online (Sandbox Code Playgroud)
现在,在创建新实例时将userdata.txt文件作为输入传递,如下所示:
#openstack server create --flavor m1.small --image Ubuntu-Trusty --key-name mykey --nic net-id=88536e89-12a9-41eb-8aed-57983ee299e8 --security-group default --user-data=userdata.txt my-ubuntu
Run Code Online (Sandbox Code Playgroud)
上面的命令将为默认用户ubuntu设置密码mypasswd。
归档时间: |
|
查看次数: |
30824 次 |
最近记录: |