searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

虚机密码初始化及修改方案

2023-10-16 06:40:32
136
0

一、虚拟机初始化密码

方法一:cloud-init 方式

cloud-init 是运行在虚拟机实例里用来初始化实例的一个框架。专为云计算环境中虚拟机、裸金属实例的初始化而开发的一个开源工具,它安装在虚拟机、裸金属镜像中,通过从 nova metadata 服务或 config driver 获取用户注入的元数据,打包成镜像,并挂载在实例的 cdrom 中,通过读取cdrom中相关数据,对虚拟机进行初始化配置。

可以用来设置主机名、密码、SSH key 等。

这里采用 config driver 模式,优势是不依赖网络。

config driver 模式实现过程:instance 镜像中需要安装 cloud-init, config driver 会将 metadata/userdata 封装到一个 iso9660(也支持vfat)的镜像文件中,然后把镜像文件以光驱的形式挂载到虚拟机中,在虚拟机启动时 cloud-init 从挂载的镜像读取数据,完成相关初始化工作。

使用步骤:

Step 1:  虚拟机镜像内安装 cloud-init,上传到 Glance

可下载已安装 Cloud-init 的 GenericCloud 镜像

上传镜像:

glance image-create --name CentOS-7-x86_64-GenericCloud-1907 --disk-format qcow2 --container-format bare --file CentOS-7-x86_64-GenericCloud-1907.qcow2 --is-public True  --progress

Step 2:  计算节点修改配置,libvirt下增加如下配置项

vim /etc/kolla/nova-compute/nova.config
 
[libvirt]
force_config_drive=True

Step 3:Dashboard使用已安装 cloud-init 的镜像新建虚拟机

在定制化脚本中输入

#!/bin/sh
passwd root <<EOF
xxxxxx
xxxxx
EOF

 

虚拟机创建完后,使用设置的 root/xxxxx可登陆虚拟机

 

 方法二:inject 方式

注意:Inject 方式需要打开旧版Dashboard界面。

Step 1:  计算节点修改配置,libvirt 下增加如下配置项

vim /etc/kolla/nova-compute/nova.config
 
[libvirt]
inject_password = true
inject_partition = -1

Step 2:  修改horizon配置,将 can_set_password 设置为 True,打开旧版本创建虚拟机页面

vim /etc/kolla/horizon/local_settings
 
OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,
    'can_set_password': True,
    'requires_keypair': False,
    'enable_quotas': True
}

# 打开旧版本Dashboard创虚拟机界面,同时也可保留新版界面
LAUNCH_INSTANCE_LEGACY_ENABLED = True
LAUNCH_INSTANCE_NG_ENABLED = True

Step 3:  进入旧版创建实例页面,创建虚拟机

设置虚拟机root密码

创建完成后使用设置的root密码可正常登陆

 

二、libvirt-set-admin-password修改密码

用户忘记虚拟机root密码,通过管理员后台用命令行重置。

Openstack 可直接使用“nova set-password”重置root密码,这是L 版本新加入的功能。

这种方法是通过在虚拟机内部安装qemu-guest-agent来接受相关修改密码的指令,对各个中间件的版本有要求:

libvirt                1.2.16+       宿主机
python-libvirt         1.2.16+       宿主机
qemu-guest-agent       2.3+          虚机内部

使用步骤:

Step 1:  虚拟机镜像内安装qemu-guest-agent 

可下载已安装qemu-guest-agent的GenericCloud镜像

Step 2:  上传镜像到Glance,镜像设置hw_qemu_guest_agent属性

glance image-create --name CentOS-7-x86_64-GenericCloud-1907 --disk-format qcow2 --container-format bare --file CentOS-7-x86_64-GenericCloud-1907.qcow2 --is-public True --property hw_qemu_guest_agent=yes --progress

或更新已有镜像属性

glance image-update 53ca6748-cae2-44a7-9dbb-baa310869ef2 --property hw_qemu_guest_agent=yes

Step 3:  创建虚拟机

nova boot --image=CentOS-7-x86_64-GenericCloud-1907 --nic net-id=19939124-040d-417a-9287-930ddb493268 --flavor m1.small password_init_test-1

Step 4:  修改虚拟机root密码

# 两次输入新密码
nova set-password b090b3bf-5cbc-4c5b-85f3-72124d2f7c87
New password:
Again:

用新密码可登陆虚拟机

libvirt-set-admin-password 可以随时修改虚拟机密码, cloud-init 只能在虚拟机创建时初始化去做。
0条评论
作者已关闭评论
郑****杰
2文章数
0粉丝数
郑****杰
2 文章 | 0 粉丝
郑****杰
2文章数
0粉丝数
郑****杰
2 文章 | 0 粉丝
原创

虚机密码初始化及修改方案

2023-10-16 06:40:32
136
0

一、虚拟机初始化密码

方法一:cloud-init 方式

cloud-init 是运行在虚拟机实例里用来初始化实例的一个框架。专为云计算环境中虚拟机、裸金属实例的初始化而开发的一个开源工具,它安装在虚拟机、裸金属镜像中,通过从 nova metadata 服务或 config driver 获取用户注入的元数据,打包成镜像,并挂载在实例的 cdrom 中,通过读取cdrom中相关数据,对虚拟机进行初始化配置。

可以用来设置主机名、密码、SSH key 等。

这里采用 config driver 模式,优势是不依赖网络。

config driver 模式实现过程:instance 镜像中需要安装 cloud-init, config driver 会将 metadata/userdata 封装到一个 iso9660(也支持vfat)的镜像文件中,然后把镜像文件以光驱的形式挂载到虚拟机中,在虚拟机启动时 cloud-init 从挂载的镜像读取数据,完成相关初始化工作。

使用步骤:

Step 1:  虚拟机镜像内安装 cloud-init,上传到 Glance

可下载已安装 Cloud-init 的 GenericCloud 镜像

上传镜像:

glance image-create --name CentOS-7-x86_64-GenericCloud-1907 --disk-format qcow2 --container-format bare --file CentOS-7-x86_64-GenericCloud-1907.qcow2 --is-public True  --progress

Step 2:  计算节点修改配置,libvirt下增加如下配置项

vim /etc/kolla/nova-compute/nova.config
 
[libvirt]
force_config_drive=True

Step 3:Dashboard使用已安装 cloud-init 的镜像新建虚拟机

在定制化脚本中输入

#!/bin/sh
passwd root <<EOF
xxxxxx
xxxxx
EOF

 

虚拟机创建完后,使用设置的 root/xxxxx可登陆虚拟机

 

 方法二:inject 方式

注意:Inject 方式需要打开旧版Dashboard界面。

Step 1:  计算节点修改配置,libvirt 下增加如下配置项

vim /etc/kolla/nova-compute/nova.config
 
[libvirt]
inject_password = true
inject_partition = -1

Step 2:  修改horizon配置,将 can_set_password 设置为 True,打开旧版本创建虚拟机页面

vim /etc/kolla/horizon/local_settings
 
OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,
    'can_set_password': True,
    'requires_keypair': False,
    'enable_quotas': True
}

# 打开旧版本Dashboard创虚拟机界面,同时也可保留新版界面
LAUNCH_INSTANCE_LEGACY_ENABLED = True
LAUNCH_INSTANCE_NG_ENABLED = True

Step 3:  进入旧版创建实例页面,创建虚拟机

设置虚拟机root密码

创建完成后使用设置的root密码可正常登陆

 

二、libvirt-set-admin-password修改密码

用户忘记虚拟机root密码,通过管理员后台用命令行重置。

Openstack 可直接使用“nova set-password”重置root密码,这是L 版本新加入的功能。

这种方法是通过在虚拟机内部安装qemu-guest-agent来接受相关修改密码的指令,对各个中间件的版本有要求:

libvirt                1.2.16+       宿主机
python-libvirt         1.2.16+       宿主机
qemu-guest-agent       2.3+          虚机内部

使用步骤:

Step 1:  虚拟机镜像内安装qemu-guest-agent 

可下载已安装qemu-guest-agent的GenericCloud镜像

Step 2:  上传镜像到Glance,镜像设置hw_qemu_guest_agent属性

glance image-create --name CentOS-7-x86_64-GenericCloud-1907 --disk-format qcow2 --container-format bare --file CentOS-7-x86_64-GenericCloud-1907.qcow2 --is-public True --property hw_qemu_guest_agent=yes --progress

或更新已有镜像属性

glance image-update 53ca6748-cae2-44a7-9dbb-baa310869ef2 --property hw_qemu_guest_agent=yes

Step 3:  创建虚拟机

nova boot --image=CentOS-7-x86_64-GenericCloud-1907 --nic net-id=19939124-040d-417a-9287-930ddb493268 --flavor m1.small password_init_test-1

Step 4:  修改虚拟机root密码

# 两次输入新密码
nova set-password b090b3bf-5cbc-4c5b-85f3-72124d2f7c87
New password:
Again:

用新密码可登陆虚拟机

libvirt-set-admin-password 可以随时修改虚拟机密码, cloud-init 只能在虚拟机创建时初始化去做。
文章来自个人专栏
KubeVirt
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0