|
|
1.虚拟机创建时设置密码/ U, W& L& ?% ]) J+ `, i0 k/ ^. m
计算节点安装以下软件包
; X* r; G# d. L6 I U3 e! O* byum install libguestfs python-libguestfs libguestfs-tools-c; c4 w% r3 F9 o% D; o+ B' a0 U) S
配置计算节点nova配置文件/etc/nova/nova.conf,添加如下选项; Y2 \( G7 V c5 l- F
[libvirt]4 q6 F' _: s+ e& w8 T: }
inject_password=true
% U% p+ X( a: M- tinject_key=true) q: N1 Q7 W/ |1 k7 I7 P
inject_partition=-1 G9 l- f! o2 b4 _% O
H* ~1 V9 Z. b
重启计算节点的nova服务4 H( O: i& l) k4 P1 ]
systemctl restart openstack-nova-compute libvirtd" C+ x% I2 F9 D5 n
user data 也可以是 cloud-init 支持的一个 yaml 结构文件,所以还可以通过如下方式改密码7 F& `6 G3 j ], y; V
# cat ./cloud-config.txt2 c* c- f+ L* F( ]+ s& x: F
#cloud-configchpasswd: list: | root:123456 expire: False
1 I5 f2 c: X9 f, l9 B9 H' u
& S, C1 |7 O8 R* u6 y) l' N0 q创建虚拟机并设置密码的命令如下
! x5 ^5 Q2 F( h" Lnova boot --user-data ./cloud-config.txt --image ... 或者openstack server create --user-data ./cloud-config.txt --image ...3 Z) a" G- z6 \. |3 b. y
示范如下/ r8 M/ N, ]& c* i. l" Z7 l
openstack server create --flavor 1c2g --user-data ./cloud-config.txt --availability-zone nova --image 75398b9c-5cd6-4936-a093-eba02984f7f0 \
4 g' W! d4 R8 g9 U--nic net-id=5ac5c948-909f-47ff-beba-a2ffaf917c5f,v4-fixed-ip=172.16.99.134 \3 E* A# l; ]! H5 X% X' _' g/ O
--nic net-id=85ae5035-203b-4ef7-b65c-397f80b5a8af,v4-fixed-ip=172.16.100.34 \7 _9 D7 v+ h ~" R
--security-group 5bb5f2b1-9210-470f-a4a7-2715220b2920 tomcat-vm4+ ^; }) l/ ^8 S. N1 L
: e" S4 u! `2 R8 G6 e5 n
G( f1 d2 W$ }3 u" P: U% T$ i2.虚拟机启动后修改密码
3 _ M2 I5 J" M# Z, Q; k如果需要nova set-password起作用,需要image中装有qemu-guest-agent,另外需要设置meta中的 hw_qemu_guest_agent为yes
' w/ Z% [) i# n" C! b% S3 e2.1首先需要在openstack镜像中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:
" V! I8 p7 t& V- Q- `6 K# glance image-update 75398b9c-5cd6-4936-a093-eba02984f7f0 --property hw_qemu_guest_agent=yes. R4 I) o; E+ c; k
[url=] [/url]
5 b$ B) n3 S0 B3 z( l7 x! u0 |7 w+---------------------+--------------------------------------------------------------------+| 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]6 z P' Y. R2 p2 u. D! S% @
' @- q/ }; ?0 W4 q5 K( J$ Y
2 _9 v6 E: H/ d) M3 R) E5 I+ g
1 F4 x3 {# ~$ a. r7 T
其中75398b9c-5cd6-4936-a093-eba02984f7f0为镜像ID6 M- X# v5 U v
- u6 e1 H6 J# `$ r( `) q修改启动后的虚拟机密码为1234565 x; q0 @5 a$ d! z2 a$ M& F
# nova set-password 550e9a70-8064-4180-8bab-502ee15e6647 或者 openstack server set --root-password 550e9a70-8064-4180-8bab-502ee15e6647
0 n. d& E0 T( f, x3 {) aNew password:
9 G$ [- x1 z s2 _Again:+ p& p) H3 p$ Q
% k' @2 n/ d4 Z) |8 s7 D* ~: [6 j其中550e9a70-8064-4180-8bab-502ee15e6647为虚拟机ID2 |& I! M0 u/ T# P
# nova help set-password, d4 c2 C9 q, T4 U
usage: nova set-password <server>. M c3 [- q2 _- |
6 F: N% l" L+ a; D I- m
Change the admin password for a server.- M0 C" `% p) S9 I
3 S& m5 I. \2 Y: U+ T3 `$ w- xPositional arguments:: h5 M0 X+ j- f
<server> Name or ID of server./ @& n. B* l7 o& X( G# h
0 |/ K6 Q5 I" O( H+ q+ H, y
测试密码是否修改成功
: o7 o7 i1 u5 Z3 n# sshpass -p '123456' ssh root@172.16.99.134 w0 o N! ~/ m4 \4 Q" Q
13:28:54 up 14 min, 1 user, load average: 0.04, 0.08, 0.13
/ \0 Q" f; J3 VUSER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT* `1 Y K& v( F9 X# g" u
root pts/0 10.30.1.103 13:20 8:28 0.03s 0.03s -bash' r: ^4 i7 U" l. S7 Z! o! E
! k( Q0 c4 ]) w( D% A" V* n
) {0 Z6 U/ }0 S6 N5 c在openstack horizon中重建实例时支持设置密码,同样可以生效了。- W0 A3 X0 c; t' _. x
( T3 O3 S) I% ~5 R* g: v P扩展1:给单个云主机中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:& [* B0 [% f; R
nova meta 550e9a70-8064-4180-8bab-502ee15e6647 set hw_qemu_guest_agent=yes
3 o8 I5 S R9 N- S0 ]( r2 Y$ d: M1 h( j+ r5 m& ?6 ~
扩展2:- m7 f, v- U7 \& ^
上传镜像前修改密码: s, n. Z9 ?2 ? X% w
virt-customize -a /tmp/CentOS7.6_x86_64.raw --root-password password:123456/ B) B' m! I) J
上传镜像
# t# \2 ?% T1 \5 [% ^+ Jopenstack image create "CentOS 7.6 64位 V2" --file /tmp/CentOS7.6_x86_64.raw --disk-format raw --container-format bare --public
" l- K# y( M: \, Y' C
# K; r& P, H. w) ~; }
* ~0 q9 r* N0 h' k8 Y |
|