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

致謝

筆者受到下方的文章的啓發,才得以解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章