找回密码
 注册
查看: 664|回复: 0

配置Cloud-Init工具接管网络,以及其他配置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-6-16 17:00:04 | 显示全部楼层 |阅读模式
配置Cloud-Init工具5 s( ^1 q0 u) D+ {0 L0 e
用户可以根据需要根据用户类型配置登录云服务器的用户权限。使用root帐户登录,需要开启root用户的ssh权限,并开启密码远程登录。
$ d2 J! A2 N, V, j若用户选择注入密码,则通过自己注入的密码进行远程SSH或noVNC登录。) S' e7 H& D5 m3 o& s8 Q
若用户选择注入密钥,则通过自己注入的密钥进行远程SSH登录。
8 Q% T$ A3 x! A+ Z: L$ b  t执行以下命令,在vi编辑器中打开“/etc/cloud/cloud.cfg”。' f# j% X: S. {
vi /etc/cloud/cloud.cfg
9 l8 G' Z6 [( M2 u(可选)在“/etc/cloud/cloud.cfg”中配置“apply_network_config”为“false”。5 [4 A/ v9 ~5 \4 W5 [0 ]2 ~8 h
对于使用Cloud-Init 18.3及以上版本的用户,需执行本操作。3 I# J& r0 |. [( |9 J3 q
图1 配置示例
! l9 W0 {5 p- r4 L" [5 o0 W/ R点击放大9 N; d7 k- _7 B1 s" A
设置开放root密码远程登录并开启root用户的ssh权限。以CentOS 6.7系列操作系统为例,配置文件中的“disable_root”字段为“1”表示为禁用,为“0”表示不禁用(部分OS的Cloud-Init配置使用“true”表示禁用,“false”表示不禁用)。设置“disable_root”值为“0”,“ssh_pwauth”为“1”,“lock_passwd”设置为“false”,“false”表示不锁住用户密码。
0 k" ]1 ?- H0 H$ S+ vusers:! k3 Q% }3 T' K7 V4 B
- name: root
0 h" o7 I) K5 o   lock_passwd: False1 J! G7 @' r6 K; ^) {- H
disable_root: 0% u; S( V$ T7 G- u6 {) I
ssh_pwauth: 1- k6 ?6 x' i* b4 [1 m9 `, M. @
开启机器名更新机制,请勿注释或删除“ - update_hostname”语句。
' m  M* A- R6 O  W; Tcloud_init_modules:" S# `3 A( w' x' R
- migrator
" ^0 U# f' S: | - bootcmd# R0 C9 {. c' a; e. K* p
- write-files) F+ G- O6 O: W  b
- growpart+ {3 [- H, D: X2 n: o1 i/ c# v$ }% p
- resizefs
% t. l$ _5 ]* X8 b" V% { - set_hostname
( `! `  k4 V& _ - update_hostname
* u: ]- j: o8 T; o# _ - update_etc_hosts
- F, q5 |7 ]+ d, I- ^$ L6 e - rsyslog
9 A- `2 o- Z" W, u - users-groups, u* h8 O, X( n% |" H! D) j
- ssh5 Q; D3 I+ j' U$ `1 Z
执行以下命令,在vi编辑器中打开“/etc/ssh/sshd_config”。
( i- a# J! U% Q. i7 fvi /etc/ssh/sshd_config5 t/ u$ a* A$ m) a3 [
将“sshd_config”中的“PasswordAuthentication”的值修改为“yes”。
! j; {: m# O; s# f) H说明:
. |. \" u3 S: g# y" C( {0 Z# y如果是SUSE和openSUSE操作系统,需要同时配置“sshd_config”文件中的以下两个参数为“yes”。
  B& r: f  K* Q8 _. }) f4 A9 ]* FPasswordAuthentication
" K+ |- V+ b; g+ `* i7 l: x0 vChallengeResponseAuthentication
. {# Z  n# t1 r- k( e8 U) `确保删除镜像模板中已经存在的linux帐户和“/home/linux”目录。
0 E0 S( K2 |6 P: J& [) I9 tuserdel linux& }& R9 R! q' q; y9 G! ^
rm -fr /home/linux
4 b+ J- \* F- C0 o1 |, J* r配置agent访问OpenStack数据源。
' p) o; ?' {* O在“/etc/cloud/cloud.cfg”最后一行添加如下内容,配置agent访问OpenStack数据源。
+ b! w2 _$ e, @' K2 K3 pdatasource_list: [ OpenStack ]
0 ]+ c: ~( ^( Z7 {) d* X0 n) `datasource:/ ]& h3 z, J7 H' e
  OpenStack:
' c+ @2 z4 E- J" Q    metadata_urls: ['http://169.254.169.254']
. @: J# Z/ ~. Y/ d$ @6 x    max_wait: 120
" N: X: n: _& P4 m4 U9 t; w8 o! P! n9 u    timeout: 5
$ F! s* q8 `7 U- Q0 v; K) E说明:
% ~) ?- a9 R' s" m  H; [max_wait和timeout可由用户自定义是否需要配置,上述回显信息中max_wait和timeout的取值仅供参考。, o$ c; R  Z$ N' Z0 j
当操作系统版本低于Debian8、CentOS 5时,不支持配置agent访问OpenStack数据源。7 s. T4 U- S$ k9 @
CentOS、EulerOS操作系统云服务器必须要禁用默认的zeroconf路由,以便精确访问OpenStack数据源。
% J% m! L5 G$ ]% Z) _( h- ?5 Necho "NOZEROCONF=yes" >> /etc/sysconfig/network
; e: W% E/ ?$ b6 r* k0 s2 u" a9 U8 I  s5 Q8 Y3 |, i

; ~2 u% D; O  \& {在配置文件“/etc/cloud/cloud.cfg”中禁用Cloud-Init接管网络。$ X& J- g0 S) y: g* a# y! u& b$ A
当Cloud-Init版本等于或高于0.7.9版本时,在配置文件“/etc/cloud/cloud.cfg”中增加如下内容,禁用Cloud-Init接管网络。; @* z" u( M1 F" f- A7 o6 n" S
network:
+ a' ]- b2 \+ V% }: c  config: disabled
) D/ y5 ^5 O2 y3 v' \
. J' o& n5 ^2 ]3 W; a2 G% F7 L
. @: I+ z# b4 g说明:% T- C0 d# \( T( m+ v1 r
增加的内容需严格按照yaml格式进行配置。
6 Y5 o- Q* z* Q) m) \5 ~3 k
" `6 J, R. I3 B7 |; ]6 k1 C4 W! t! L' ~) h3 s5 [  a
图2 禁用Cloud-Init接管网络
0 J+ i! f2 `: p/ N在配置文件“/etc/cloud/cloud.cfg”中补充如下内容。
. U8 S( K; B  A: N* a1 j; nmanage_etc_hosts: localhost
! r4 i& y: @5 b% F) i, |% e  c# J7 T0 ]3 w' m: g* ^% R
防止启动云服务器时,系统长时间卡在“Waiting for cloudResetPwdAgent”状态。
9 g3 @# w; g$ R  ?. h* ]" k图3 新增manage_etc_hosts: localhost
  G( [+ W9 d! B( b6 s点击放大
  l; o# [; B0 m' y2 }
: Q7 L% x0 g3 H/ @# J$ }# \: T" R# e. J
修改配置文件“cloud_init_modules”。
# B) A% i% E% A: Z' r4 g; n" L在“cloud_init_modules”中将ssh从最后提前到第一位处理,提高云服务器ssh登录速度。" v6 g% k  C3 J( i
图4 提高云服务器ssh登录速度: Q( @7 N5 h- ~+ b0 F' l4 U
: D3 m3 Z1 i& a. f% t
( t* R7 O1 b8 q3 P5 p+ {' a
修改以下配置使得镜像创建的云服务器主机名不带“.novalocal”后缀且主机名称中可以带点号。
0 d9 b! V% [0 K# q4 [执行如下命令,修改“__init__.py”文件。1 d. K  x. [2 K( o9 ^
vi /usr/lib/python2.7/site-packages/cloudinit/sources/__init__.py  p) C# g3 f0 \7 p: j1 l
按“i”进入编辑模式,根据关键字toks查询,修改内容如下回显信息所示。/ |5 `$ |6 t; c/ b
if toks:
! O8 W6 d5 X- e9 g0 l    toks = str(toks).split('.')" j6 D9 |0 n7 a+ q0 L4 d+ s
else:; J$ B3 A4 W  ]* ~. {& @+ q
    toks = ["ip-%s" % lhost.replace(".", "-")]
& N& h$ V) }) V; n8 [, X9 T% i& u4 Ielse:
* Q- U% V: t: N" ]/ i    toks = lhost.split(".novalocal")
. g0 D& U- \, o/ wif len(toks) > 1:, c! q5 j) K% u; \
    hostname = toks[0]2 V& D: s6 m. g
    #domain = '.'.join(toks[1:])$ A2 ?  h. G7 _* L, a. L
else:
+ N) t3 S/ F4 `( J    hostname = toks[0]
3 z' S# H  O. }2 \) `2 Rif fqdn and domain != defdomain:$ U& l+ X- A0 ?! ]7 Z
    return "%s.%s" % (hostname, domain)
. V6 Q* d: \' b- R" _else:
% Z* `6 g. |4 M& K% D    return hostname
' j. c) X& i  U! g9 Y1 X# {9 C9 U修改完成后按“ESC”退出编辑模式,输入:wq!保存并退出。
% a; }6 C* c5 P, c0 q3 T  O1 h9 T2 S+ V9 O* f9 d. T

* U4 q* ?( J  n& d. N! w, I0 w图5 修改__init__.py文件
- w8 U% }" i- r) b点击放大0 o! a9 ?+ i' Z- o& V) _: G' e
执行如下命令进入“cloudinit/sources”文件夹。) Q* F  G! C  p
cd /usr/lib/python2.7/site-packages/cloudinit/sources/
6 L) ^# N1 ?7 X2 g执行如下命令,删除“__init__.pyc”文件和优化编译后的“__init__.pyo”文件。
( d4 K" f* G6 |+ Prm -rf __init__.pyc7 R" H2 \. b0 {* o) L: Q
rm -rf __init__.pyo
+ G" B0 |, @- U! k) i执行如下命令,清理日志信息。
" A( ]6 _* V/ H, X; {rm -rf /var/lib/cloud/*1 T2 f7 ^% K  o( s% b+ j
rm -rf /var/log/cloud-init*: [. N) ?2 S7 x1 i6 Z+ I
执行以下命令编辑Cloud-Init日志输出路径配置文件,设置日志处理方式handlers,建议配置为cloudLogHandler。
& ?' }" ?% y- N: T: M3 B5 [vim /etc/cloud/cloud.cfg.d/05_logging.cfg
! |; H+ L0 W# ?) x. \8 ^  F图6 配置为cloudLogHandler
2 V  b/ P  ~& b: Z% C5 V  ?
* m  {! x2 i( G$ |1 ~1 t% I) Q" f5 Z) j' |5 ]
检查Cloud-Init工具相关配置是否成功
, `7 c" i* @, I9 m' g8 c4 W- q执行以下命令,无错误发生,说明Cloud-Init配置成功。
" v4 s% J  R* ^: T' f: g9 G2 A' }cloud-init init --local
, h. m) n1 z. \$ x; b* d正确安装的Cloud-Init会显示Cloud-Init的版本详细信息,并且无任何错误信息。例如,正确安装的情况下,不含有缺少文件的提示信息。* o) f; s0 R# K
说明:
0 ]; f/ T& r8 P0 a执行如下命令,可将系统用户密码有效期设置为最大。此操作可选。( J3 r, u" f& g# e- R& s
chage -M 99999 $user_name
. H2 @1 J6 m# H0 u2 Y其中,user_name为系统用户,例如root帐户。
* L) Q! x$ B( v; G6 K# [; e; A密码有效期建议设置为99999。1 _% K; ~$ ~) Q) [' T+ |
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 04:26 , Processed in 0.015366 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表