1.虚拟机创建时设置密码
计算节点安装以下软件包
yum install libguestfs python-libguestfs libguestfs-tools-c
配置计算节点nova配置文件/etc/nova/nova.conf,添加如下选项
[libvirt]
inject_password=true
inject_key=true
inject_partition=-1
 
重启计算节点的nova服务
systemctl restart openstack-nova-compute libvirtd
 
user data 也可以是 cloud-init 支持的一个 yaml 结构文件,所以还可以通过如下方式改密码
# cat ./cloud-config.txt
#cloud-config
chpasswd:
list: |
root:123456
expire: False
创建虚拟机并设置密码的命令如下
nova boot --user-data ./cloud-config.txt --image ...  或者openstack server create --user-data ./cloud-config.txt --image ...
示范如下
openstack server create --flavor 1c2g --user-data ./cloud-config.txt --availability-zone nova --image 75398b9c-5cd6-4936-a093-eba02984f7f0 \
--nic net-id=5ac5c948-909f-47ff-beba-a2ffaf917c5f,v4-fixed-ip=172.16.99.134 \
--nic net-id=85ae5035-203b-4ef7-b65c-397f80b5a8af,v4-fixed-ip=172.16.100.34 \
--security-group 5bb5f2b1-9210-470f-a4a7-2715220b2920  tomcat-vm4
 
2.虚拟机启动后修改密码
如果需要nova set-password起作用,需要image中装有qemu-guest-agent,另外需要设置meta中的 hw_qemu_guest_agent为yes
2.1首先需要在openstack镜像中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:
# glance image-update 75398b9c-5cd6-4936-a093-eba02984f7f0 --property hw_qemu_guest_agent=yes
+---------------------+--------------------------------------------------------------------+
| Property | Value |
+---------------------+--------------------------------------------------------------------+
| checksum | fc345c82d1f2f28c63a1be8b386a15e4 |
| container_format | bare |
| created_at | 2020-02-19T08:45:40Z |
| direct_url | file:///var/lib/glance/images/75398b9c-5cd6-4936-a093-eba02984f7f0 |
| disk_format | raw |
| hw_qemu_guest_agent | yes |
| id | 75398b9c-5cd6-4936-a093-eba02984f7f0 |
| min_disk | 0 |
| min_ram | 0 |
| name | CentOS 7.6 64位 |
| owner | 75aed7016c86445198356e78dddde4ba |
| protected | False |
| size | 5368709120 |
| status | active |
| tags | [] |
| updated_at | 2020-02-20T05:05:58Z |
| virtual_size | None |
| visibility | public |
+---------------------+--------------------------------------------------------------------+
其中75398b9c-5cd6-4936-a093-eba02984f7f0为镜像ID
 
修改启动后的虚拟机密码为123456
# nova set-password 550e9a70-8064-4180-8bab-502ee15e6647 或者 openstack server set --root-password 550e9a70-8064-4180-8bab-502ee15e6647
New password:
Again:
其中550e9a70-8064-4180-8bab-502ee15e6647为虚拟机ID
# nova help set-password
usage: nova set-password <server>
 
Change the admin password for a server.
 
Positional arguments:
  <server>  Name or ID of server.
测试密码是否修改成功
# sshpass -p '123456' ssh root@172.16.99.134 w
13:28:54 up 14 min,  1 user,  load average: 0.04, 0.08, 0.13
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.30.1.103      13:20    8:28   0.03s  0.03s -bash
 
在openstack horizon中重建实例时支持设置密码,同样可以生效了。
 
扩展1:给单个云主机中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:
nova meta 550e9a70-8064-4180-8bab-502ee15e6647  set hw_qemu_guest_agent=yes
 
扩展2:
上传镜像前修改密码
virt-customize -a /tmp/CentOS7.6_x86_64.raw  --root-password password:123456
上传镜像
openstack image create "CentOS 7.6 64位 V2" --file /tmp/CentOS7.6_x86_64.raw --disk-format raw --container-format bare --public

如何修改openstack虚拟机密码的更多相关文章

  1. OpenStack 镜像密码修改办法

    Contents [hide] 1 场景 2 方案一 3 方案二 4 方案三 5 目前采用方案三 场景 用户将实例里的root密码修改了,/root/.ssh/的公钥文件删除了,然后把密码忘记了,需要 ...

  2. kvm 修改虚拟机密码

    kvm 修改虚拟机密码 现在虚拟机kvm的使用很流行,为了更多的差异化环境,每个人可能拥有很多的kvm,这数量一多难免会有image的密码会忘记,相信很多人会采用kernel single user ...

  3. 修改openstack镜像--支持root密码登陆

    一.前言 从openstack官方下载的云镜像一般都是普通用户密钥登陆,比如centos镜像的普通用户为centos,ubuntu镜像的普通用户为ubuntu,虽然密钥登陆系统相比密码登陆来说比较方便 ...

  4. debian官网qcow2镜像修改root账号密码,开启ssh等

    1.下载官网qcow2镜像文件 wget http://172.16.20.10/vmtemplate/KVM/wangrui/Debian/debian-10.2.0-openstack-amd64 ...

  5. OpenStack虚拟机冷迁移与热迁移

    一.虚拟机迁移分析 openstacvk虚拟机迁移分为冷迁移和热迁移两种方式. 1.1冷迁移: 冷迁移(cold migration),也叫静态迁移.关闭电源的虚拟机进行迁移.通过冷迁移,可以选择将关 ...

  6. 修改openstack用户配额

    修改openstack用户配额 这是我在工作中遇到的一个很有趣的小问题,当时的场景是这样的: 公司的云产品要上线数据库服务(trove),因为每创建数据库实例都要占用一个虚拟机及相关资源的配额,尤其是 ...

  7. 云计算与OpenStack(虚拟机Nova篇)

    <云计算与OpenStack(虚拟机Nova篇)> 基本信息 作者: 伯龙 程志鹏 张杰 出版社:电子工业出版社 ISBN:9787121201202 上架时间:2013-8-5 出版日期 ...

  8. 如何使用API创建OpenStack虚拟机?

    在安装时OpenStack会加载配置信息.有不同的虚拟机模板而且与在Amazon EC2以及其他平台上看到的完全一样.这些配置是内存.vCPU.磁盘容量等的组合,定义了虚拟机的大小及容量.可以使用如下 ...

  9. 快速修改Windows系统密码命令

    因现场需要,要对30多台虚拟机进行密码修改.正常修改方式为进入控制面板--用户账户--修改密码,输入原始密码.2遍新密码(一遍用于密码确认)完成密码修改. 这种方式操作较为繁琐,我们可以直接通过命令的 ...

随机推荐

  1. 紧急发布用cherry-pick检出当前分支所有我的提交记录

    目录 背景 操作命令 cherry-pick git log Shell脚本 背景 公司接了个新项目,需在平台上增加几个新接口,问题是本来说是和平台一起迭代发布的时间提前了,但当前的代码都和其他开发人 ...

  2. 通过PHPExcel将Excel表文件中数据导入数据库

    1 <?php 2 header("Content-Type:text/html;charset=utf-8"); 3 include_once 'PHPExcel.php' ...

  3. Contest 1428

    A 移动次数是 \(\left|x_1-x_2\right|+\left|y_1-y_2\right|\). 如果 \(x_1\not=x_2\) 且 \(y_1\not=y_2\) 说明要换方向,两 ...

  4. 自动化运维工具之Puppet常用资源(一)

    前文我们聊到了puppet的架构,单机模型和master/agent模型的工作流程以及puppet的基础使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14 ...

  5. DRAM三种刷新方式(转载)

    设DRAM中电容的电荷每2ms就会丢失,所以2ms内必须对其补充.补充电荷是按行来进行的,为了[全部]内存都能保住电荷,必须对[所有]的行都得补充. 假设刷新1行的时间为0.5μs(刷新时间是等于存取 ...

  6. moviepy音视频剪辑:TextClip.list(font)和search搜索字体报错UnicodeDecodeError:utf-8 codec cannott decode byte 问题

    ☞ ░ 前往老猿Python博文目录 ░ 在moviepy2.0.0.Dev版本中,执行如下语句: from moviepy.editor import * TextClip.search('gb', ...

  7. 什么是Python生成器?与迭代器的关系是什么?

    生成器是一个特殊的迭代器,它保存的是算法,每次调用next()或send()就计算出下一个元素的值,直到计算出最后一个元素,没有更多的元素时,抛出StopIteration.生成器有两种类型,一种是生 ...

  8. HTTP请求头和响应头详解【转】

    最近老猿在开始学习爬虫相关的知识,由于老猿以前只做非web的后台应用,发现相关知识太过匮乏,导致学习很困难,为此不得不从一些基础知识恶补开始,对于这些知识,老猿会将网上找到的比较认可的内容直接转发. ...

  9. 第十四章 web前端开发小白学爬虫

    老猿从事IT开发快三十年了,接触互联网也很久了,但自己没有做过web前端开发,只知道与前端开发相关的一些基本概念,如B/S架构.html标签.js脚本.css样式.xml解析.cookies.http ...

  10. Combiner-Reduce之前处理过程

    简介 Combiner是Mapper和Reducer之外的组件. Combiner是在Reducer运行之前,对Mapper数据进行处理的. Wordcount实例 WordCountMapper p ...