|
|
compute node install
7 A8 v3 @& e, ]' ]/ ~' m4 a+ w1 G4 ?+ t7 q) e$ X
: K! |* V- }# ~7 |( n* D) Fyum install libguestfs python-libguestfs libguestfs-tools-c* M3 @9 K5 B$ w! T/ A' n; K
compute node config
$ {. R1 r/ ]3 ]3 Y6 B
; x6 s% a% J+ |/ L6 k. v# ?1 ^/ x# Z9 l0 S1 m
[libvirt]+ s* E' C0 L! q- @* `. {
2 w9 f1 Y7 ~, l0 Z* v; Xinject_password=true+ s0 s, c- K$ C+ f$ {' Y* l
6 z/ X8 } e2 I/ L0 u- X
inject_key=true& }" i/ F5 r, r- \* o
2 w" Z: \( j( @7 }
inject_partition=-1
" s2 E5 O8 l5 @) a2 P) B
; X/ P% W( Z' b; Brestart nova compute service
& j+ ^ Q. u" X$ q
e! O; u0 e1 s v( q
9 O6 ~- V, ~8 F- Z# C7 Tsystemctl restart openstack-nova-compute.service
. p, D/ w$ `* s$ u3 l设置root/adminstrator的密码7 m+ _% n/ }3 H) Q
$ g7 X5 u# I7 r8 [6 i
; y7 I9 H. v. u/ G! Snova boot --admin-pass4 ? C7 a5 K4 J( `' r0 V3 m0 A) j
添加新用户& B! o6 L% Y- I
9 [; i1 D2 s! ~! B1 P0 B* G5 e
& l/ s6 k5 S- o2 t3 U' }+ r
nova boot --user-data
+ |7 ]" j0 U0 N! n, Q! s0 y e5 X8 ? user-data example
- j$ h6 E: V/ N
4 H+ P9 d6 B7 P复制代码
. ~) o' A3 }& o* p7 o/ d+ p#!/bin/sh7 Z: Q& j @3 w
passwd ubuntu<<EOF
0 ^5 S- k: T% y* S! Xubuntu$ e6 x2 k4 m5 t! L" r W
ubuntu2 M/ e- E8 w) L3 s Y# N
EOF
/ j. E( s$ d5 P) ?% L$ D% vsed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
7 u" r5 E. f6 s, c" f; yservice ssh restart
5 N' ^2 ]* d( a! i1 J0 w0 V1 {$ y( P1 d; I' ]
备注:
; | P, E, j1 B0 n; s7 }' r8 ~/ m! U% A5 L9 W4 B/ x1 x- K
1 https://cloud-images.ubuntu.com/ 上的ubuntu vm用该方法设置password+ J3 o+ Y2 h, R7 R' v
5 i" }+ w( b3 b: W5 V( X. G5 M8 ^2 如果需要nova set-password起作用,需要image中装有qga,另外制作image时,需要设置meta中的 hw_qemu_guest_agent为yes8 k, @/ E; f) v/ _6 D: [0 p
3 `% T c& K) m: _/ Q% d( N! w镜像中还需要指定用户名。可以参考m版的nova代码. `- ]1 D# Y1 a x: b6 [
" {3 B$ B. a! y" L% H$ P
) A: u# O6 c) Y& u% tdef set_admin_password(self, instance, new_pass):
* V6 Q7 q( _* k# x+ [* L, h self._can_set_admin_password(instance.image_meta)' q7 M/ n. l' N0 } s
7 m6 ~! t8 ~! m/ g3 w
guest = self._host.get_guest(instance)
# c; K9 v1 ~0 Z6 q- ?+ I( a user = instance.image_meta.properties.get("os_admin_user"). z4 }; p: @7 A
if not user:
4 A T! s! _; r" R if instance.os_type == "windows":" C% A6 V, l8 B" U+ P+ e1 ~/ c
user = "Administrator"4 U3 [" A. y" X8 O# a: \8 G
else:1 d5 l( K4 H* K2 k' t
user = "root" P$ K" J( C9 P: E* \
try:
+ [9 O: V2 }4 o% a: [$ k guest.set_user_password(user, new_pass) |
|