|
|
compute node install! {! e# v0 Q$ X. T! P
Q5 _6 A7 Z$ m
; P/ z+ a0 i8 V. u( [yum install libguestfs python-libguestfs libguestfs-tools-c
* Q+ D3 z% ]( Y) C3 a( ~) \compute node config' Q! i3 O v- \! N# B/ i
3 }1 r2 K" t( {% z7 u
9 `( P. Y. l' b" z( p5 ]
[libvirt]* A- u- j# I; @) L
! |; F: D* ]( t) T
inject_password=true7 B: @* E8 ]. ?" y. z0 H
. p0 O7 b& x" L! z7 ^, e- ^' Z
inject_key=true2 S2 m) F9 ?) j3 @
3 J! q8 w: [ d: i0 o( l4 {+ U; C
inject_partition=-13 ?" n0 X0 N: p! ~( x1 }* R
; ~5 z4 x' x+ a5 R) S
restart nova compute service
# u1 n. R/ `! `( y' M! U
( I. ]' A7 }: h5 U
4 }! h: g+ L j! Ysystemctl restart openstack-nova-compute.service: b5 z8 R9 s2 y, p. J9 O
设置root/adminstrator的密码
# {# Z/ `$ p0 U% \. a! C/ Y* o/ }3 R# e/ F, r9 t
; l" `. A. o' q$ Y: _
nova boot --admin-pass% \- _% D' N8 K3 r0 p
添加新用户
0 |1 h& K) ?$ |
, s7 G1 E/ S. j9 c* F/ i' j: |
$ |* ?# r1 E: ~' p: Xnova boot --user-data4 I! ~8 u% X" v/ ~
user-data example
8 A; p2 O1 |, Y9 U% d9 `' }9 Y8 }
+ a5 n) U; G, b! y1 B3 u复制代码
+ R+ P' u2 ^- b7 d* X7 g# [; o1 `#!/bin/sh
, C0 ^; p$ E* upasswd ubuntu<<EOF# y, l {$ z$ x1 t$ j
ubuntu
7 {, y0 N9 }9 T1 Eubuntu3 U' V0 }2 ?) O
EOF* d5 y8 O7 Z ~, i+ k% o& f
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
+ [0 f" W0 d- Y) fservice ssh restart9 D8 x7 g6 h0 ~1 M6 j: _$ Q# I n
5 K) X) l& E. c 备注:
" M, ]# @* g! ~0 x
% X# [3 W5 M M4 S0 k1 https://cloud-images.ubuntu.com/ 上的ubuntu vm用该方法设置password
8 L3 P- K% v" ^
+ a. u: T" \ y/ R4 `, i2 如果需要nova set-password起作用,需要image中装有qga,另外制作image时,需要设置meta中的 hw_qemu_guest_agent为yes v5 s f( R S; }- D
7 k1 z1 F5 ?+ F$ U) D4 W) k. ?9 G镜像中还需要指定用户名。可以参考m版的nova代码7 S( L( r5 R9 N$ U+ o( p
! I$ S' e) e- a0 t* C2 ?
/ N, g1 {4 H; o, u
def set_admin_password(self, instance, new_pass):
R2 Y, k5 ^8 q, k0 q self._can_set_admin_password(instance.image_meta)
# x+ N5 d& \) V1 M! Z9 t7 J5 j3 o/ J( n2 z' Y" a3 b
guest = self._host.get_guest(instance)
4 [0 P) D1 ~7 [8 W* a user = instance.image_meta.properties.get("os_admin_user")% I3 m N7 v5 R: v
if not user:
3 L4 N) r1 Z, v |, }& _ if instance.os_type == "windows":
2 h. \! n! a2 r' Y user = "Administrator" d* t& i u; {5 O4 z
else:
* e, v A l) E# ^* P" x: p user = "root"
9 v6 _9 [5 w& U* k8 q: a try:
8 }% K; l# d) Z/ v% w: e) z guest.set_user_password(user, new_pass) |
|