|
|
1.虚拟机创建时设置密码- O* n1 t4 r9 L, A! z' a8 p
计算节点安装以下软件包3 F3 }! L# w, ?" I- j
yum install libguestfs python-libguestfs libguestfs-tools-c
4 V7 V$ v9 u3 j& X& ]" R" ^配置计算节点nova配置文件/etc/nova/nova.conf,添加如下选项; f6 p+ Z& v4 b2 _+ S
[libvirt]
* P; I' U- E' [# [* T7 V/ ainject_password=true- b" N& t9 `* e8 Q6 ]! U& j
inject_key=true
% l# C1 X+ Z% {* S# ?7 t( n( P5 `inject_partition=-1( }$ u: p1 t% H. S& D1 f- f1 I3 W( @
% ^# ]* C! ~$ _1 w
重启计算节点的nova服务
5 m! r& c/ Y1 isystemctl restart openstack-nova-compute libvirtd0 s; w/ i4 Q) v1 s
user data 也可以是 cloud-init 支持的一个 yaml 结构文件,所以还可以通过如下方式改密码1 J% M3 p3 U2 @3 `0 x+ n
# cat ./cloud-config.txt
7 m; o- N l r% N#cloud-configchpasswd: list: | root:123456 expire: False
4 p" Z0 G1 i6 d
8 ?& ]; a7 q: O+ s. e" R3 Q创建虚拟机并设置密码的命令如下6 I- h7 c/ U! K3 o# F7 t$ @- p& d, ~
nova boot --user-data ./cloud-config.txt --image ... 或者openstack server create --user-data ./cloud-config.txt --image ..., K+ K# G9 [0 j; N# K
示范如下5 I/ c- ]4 D3 o' ^+ C5 ?& j) _
openstack server create --flavor 1c2g --user-data ./cloud-config.txt --availability-zone nova --image 75398b9c-5cd6-4936-a093-eba02984f7f0 \: `( v" N$ n$ E6 b% I* c+ Q
--nic net-id=5ac5c948-909f-47ff-beba-a2ffaf917c5f,v4-fixed-ip=172.16.99.134 \1 l! n9 W: C& ?7 I0 n+ o5 V# ^
--nic net-id=85ae5035-203b-4ef7-b65c-397f80b5a8af,v4-fixed-ip=172.16.100.34 \
' f% \2 G/ n7 e8 P! `--security-group 5bb5f2b1-9210-470f-a4a7-2715220b2920 tomcat-vm4
+ W8 H1 u+ N4 L b6 Z+ Z, V1 m7 J% j i% J/ [5 \; O
; r0 z9 _$ Y( E/ u2.虚拟机启动后修改密码
, o" w% _: ] h如果需要nova set-password起作用,需要image中装有qemu-guest-agent,另外需要设置meta中的 hw_qemu_guest_agent为yes. p) s1 `. s, c0 D9 r* c2 m y
2.1首先需要在openstack镜像中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:
) J; t2 u }! A& Q' Q' ^/ ~# glance image-update 75398b9c-5cd6-4936-a093-eba02984f7f0 --property hw_qemu_guest_agent=yes
! Q2 e$ @) `7 A0 L9 s[url=] [/url]
3 a8 f# _- v0 G, l, w. Y+---------------------+--------------------------------------------------------------------+| 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 |+---------------------+--------------------------------------------------------------------+[url=] [/url]
. P( H9 K5 Y) [# [. k% R+ z' {+ \! H" t& ~) u/ d
+ ]0 Q/ |4 P1 V2 W. l: u9 j9 m1 t: G5 c1 L0 J4 ^/ B2 W" G8 k
其中75398b9c-5cd6-4936-a093-eba02984f7f0为镜像ID
3 U. e" q& d% z$ D9 }
& E( { K/ P$ i1 D修改启动后的虚拟机密码为1234561 ~7 f) i' c9 q0 z6 S; f# y- c
# nova set-password 550e9a70-8064-4180-8bab-502ee15e6647 或者 openstack server set --root-password 550e9a70-8064-4180-8bab-502ee15e66477 {5 ~7 L" k$ k% T6 I# D3 {0 n
New password:
' p, j( X8 |7 x" d: RAgain:/ f7 M7 R6 B* X2 s8 M/ x% ?' r. ^1 f
5 v) [( i9 o5 Y) s; O其中550e9a70-8064-4180-8bab-502ee15e6647为虚拟机ID
6 v4 X3 S. m% d) }# r# nova help set-password
4 v$ l5 q0 X; _) }usage: nova set-password <server>3 k3 @1 ~# E. \; _1 L2 s- k
5 d) Y- C' X5 i+ t1 _Change the admin password for a server.; |$ u8 e7 X/ l2 `, d
) [ ?; v' t( p& BPositional arguments:
; L- e% G( M9 b6 Q* \ <server> Name or ID of server.
0 H8 r8 ]+ u6 \, w" P$ v. p
: n2 _9 T5 O7 M ^0 \6 k测试密码是否修改成功
. s6 f# W6 `2 A0 {5 |- h# sshpass -p '123456' ssh root@172.16.99.134 w% l. E) {& @: d5 R8 Z
13:28:54 up 14 min, 1 user, load average: 0.04, 0.08, 0.13
. ]9 y7 a ]1 _& c* c) lUSER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT6 l$ {$ X& ^. } r
root pts/0 10.30.1.103 13:20 8:28 0.03s 0.03s -bash
* x- u4 o; H4 y+ b Y. K% P" T; E Q, w( `$ Z/ N" c0 l5 {
0 r2 e) {! c8 u& m# q, D- _! L在openstack horizon中重建实例时支持设置密码,同样可以生效了。; f9 @* l0 O+ H) l) ?# F5 H
5 s4 s+ g1 V; ^) _! n x6 f
扩展1:给单个云主机中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:$ P" {$ k/ R# l! L
nova meta 550e9a70-8064-4180-8bab-502ee15e6647 set hw_qemu_guest_agent=yes
( q1 _0 g7 P' W& D0 N
% N& G9 ]' Z# y) T扩展2:
8 i9 v3 K5 }9 I上传镜像前修改密码
1 p5 m/ ]) s" h* P7 C3 fvirt-customize -a /tmp/CentOS7.6_x86_64.raw --root-password password:123456
! k6 m6 {1 z" c& F7 Z! t上传镜像. Z7 _2 ~' D7 T# v2 g
openstack image create "CentOS 7.6 64位 V2" --file /tmp/CentOS7.6_x86_64.raw --disk-format raw --container-format bare --public, g, V; t/ l# A, m& n0 d: s3 ^
& h/ o4 H' q1 U) G7 J
8 i4 |1 T. Y" m1 ^
|
|