Openstack 创建时指定密码
背景
Openstack创建时指定密码不生效。
现象
通过openstack4j 创建虚拟机实例,指定了密码(或者直接由服务器默认生成了密码),Server返回值内也有密码,可就是不生效。
ServerCreateBuilder sc = Builders.server()
.name(Objects.requireNonNull(..., "名称"))
.flavor(Objects.requireNonNull(..., "规格"))
.image(Objects.requireNonNull(..., "镜像"))
.addAdminPass(...)
.networks(...);
分析
Openstack初始化的过程
- Cloud-Init + metadata + userdata
这篇文章有详细的阐述:
OpenStack 虚拟机的配置初始化 — Cloud-Init & Config Drive | Metadata API
解决
经过测试和验证,通过CloudInit方式创建的虚拟机,需要满足下方条件, 指定密码才能生效。
- configDrive必须设置 true
- userdata需要传递
传入personality /etc/cloud/cloud.cfg.d/userdata.cfg
#cloud-config
ssh_pwauth: True
chpasswd:
list: |
root:password12345
expire: False
致谢
笔者受到下方的文章的启发,才得以解决问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-02-23 Kafka权威指南阅读笔记(第八章)