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

致谢

笔者受到下方的文章的启发,才得以解决问题。

posted @   一杯半盏  阅读(245)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-02-23 Kafka权威指南阅读笔记(第八章)
点击右上角即可分享
微信分享提示