|
|
1.虚拟机创建时设置密码
% {4 Y2 I0 D$ R4 x7 t计算节点安装以下软件包$ p5 U9 w7 [& b b# b! t; ^$ V
yum install libguestfs python-libguestfs libguestfs-tools-c
4 g/ P+ e9 a2 A0 {配置计算节点nova配置文件/etc/nova/nova.conf,添加如下选项
1 v2 j% A4 M! M- h$ r[libvirt]7 y) q8 B" I/ L4 L+ G7 Z
inject_password=true! e0 [0 _2 l8 S) P# t
inject_key=true3 m- Q' v+ ?/ `2 q( B* }
inject_partition=-1
0 s. Z% s( J/ S0 v3 Z8 `, ^
, O: \# U# I H/ U& x& A- j1 f重启计算节点的nova服务3 }2 h8 E( a7 m. b' _8 P E
systemctl restart openstack-nova-compute libvirtd
/ ^7 \1 Y& s' |, W: Ruser data 也可以是 cloud-init 支持的一个 yaml 结构文件,所以还可以通过如下方式改密码: m2 o! \5 ?7 d
# cat ./cloud-config.txt
9 _2 K' a$ C2 G+ R" D#cloud-configchpasswd: list: | root:123456 expire: False
2 k4 a' S5 D! z% x, ~
5 g1 |5 k; E% n# e9 r创建虚拟机并设置密码的命令如下4 w, T+ |! J* w+ Q w2 O% s
nova boot --user-data ./cloud-config.txt --image ... 或者openstack server create --user-data ./cloud-config.txt --image ...
. d, y) a' M# V; _2 B) [示范如下3 s. X- k2 f3 F k$ r
openstack server create --flavor 1c2g --user-data ./cloud-config.txt --availability-zone nova --image 75398b9c-5cd6-4936-a093-eba02984f7f0 \2 @$ g' T) H, `7 ^2 d
--nic net-id=5ac5c948-909f-47ff-beba-a2ffaf917c5f,v4-fixed-ip=172.16.99.134 \
2 W$ W+ S) @6 \8 l# q4 ~--nic net-id=85ae5035-203b-4ef7-b65c-397f80b5a8af,v4-fixed-ip=172.16.100.34 \+ B4 Q- Y( U# \) j1 N3 \. y. q U
--security-group 5bb5f2b1-9210-470f-a4a7-2715220b2920 tomcat-vm4
" O( e, X3 @2 z. m) G# F! n) q7 x; ?, M$ e; _
% k+ x! c3 ]/ P4 u' @2.虚拟机启动后修改密码
8 Z' I6 |* T) a m8 {6 X, r如果需要nova set-password起作用,需要image中装有qemu-guest-agent,另外需要设置meta中的 hw_qemu_guest_agent为yes& E m* S, u! d& \' Y0 R
2.1首先需要在openstack镜像中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:
+ Q; `+ ]. p7 V! c- a( s! B/ Y# glance image-update 75398b9c-5cd6-4936-a093-eba02984f7f0 --property hw_qemu_guest_agent=yes. d" H. W* R. I- Y! v" K/ M
[url=] [/url]1 W0 }4 ]8 ?7 C) F/ r9 H: y/ S
+---------------------+--------------------------------------------------------------------+| 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]
9 }; x8 @7 r2 W5 E9 k' W8 h2 [/ T. w7 t' H |
: g- Y# Q: b- T$ _' @/ m/ R8 o
" K" o# e- Y& o/ t) T; h% {
其中75398b9c-5cd6-4936-a093-eba02984f7f0为镜像ID
n" }4 }: s1 A
( x4 v% y0 w z修改启动后的虚拟机密码为123456; h2 t0 C0 F: H$ t, n: F+ F
# nova set-password 550e9a70-8064-4180-8bab-502ee15e6647 或者 openstack server set --root-password 550e9a70-8064-4180-8bab-502ee15e6647& I, r4 l# Z! O: \" w6 p( O' _5 \
New password:
# S# L* R( B! q" O @8 T6 w- n- qAgain:
! }$ a! h0 c7 X+ z& D) n) R7 Z5 m0 M" w
其中550e9a70-8064-4180-8bab-502ee15e6647为虚拟机ID
* @5 t. R& ^3 @) x# nova help set-password8 K" O3 v5 U8 U8 O( z0 S' O
usage: nova set-password <server>& i9 e8 |% ~4 o# B) D/ Q
/ G2 Y' Q) _, I7 ]' r GChange the admin password for a server.* O+ K3 K. q4 ?1 z
3 t7 _2 z) O3 E4 uPositional arguments: H8 z$ a! X9 C7 d$ E
<server> Name or ID of server.
/ e& R' W% }) z$ N/ L8 L- q" r
q" @% T0 ^, k1 ^测试密码是否修改成功
7 \7 n4 F' k. y. L# sshpass -p '123456' ssh root@172.16.99.134 w
3 o7 _' w, m4 r% Z% y9 U% a3 T13:28:54 up 14 min, 1 user, load average: 0.04, 0.08, 0.13
" ~6 T- G/ }1 S: N* @USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
4 l) V, j* ?. H$ l& _& \, X/ h6 Rroot pts/0 10.30.1.103 13:20 8:28 0.03s 0.03s -bash/ G4 x; Y4 M; i9 |* m$ \
4 A, _6 Z9 `! e3 r: j" D1 ?
- g& K0 F& w* M+ |在openstack horizon中重建实例时支持设置密码,同样可以生效了。
9 C j7 @ d6 l; i1 o" Q1 H4 u. ^: _- A4 k
扩展1:给单个云主机中增加metadata信息:hw_qemu_guest_agent=yes,命令如下:3 g" ?2 w0 D& t0 T
nova meta 550e9a70-8064-4180-8bab-502ee15e6647 set hw_qemu_guest_agent=yes" ^7 _; H( I# p
! a; u2 a! R, h. z/ x- S扩展2:) C* O3 Y- }* S, J+ [+ w5 E
上传镜像前修改密码
9 E; j$ Q8 ~0 \ r. P n. Uvirt-customize -a /tmp/CentOS7.6_x86_64.raw --root-password password:123456& C0 @( }3 `4 L, Y6 B8 i
上传镜像4 e: i2 J* O; }4 K& c
openstack image create "CentOS 7.6 64位 V2" --file /tmp/CentOS7.6_x86_64.raw --disk-format raw --container-format bare --public
/ c K. M( w( H2 o5 X1 H4 o
* _- k$ r% a4 t7 G9 c) i% v+ F
1 Z% T. E3 U/ n6 y: ]: J( W |
|