|
|
Failed to run bootcmd module bootcmd
2 a; k, F/ p1 a# d/ c$ c( u" Y: X9 A% A+ a+ [
4 L t/ R7 D" b; x% m& p2 R2023-09-12 08:11:12,132 - util.py[WARNING]: Failed to run bootcmd module bootcmd
1 p! b# X" h( Z2023-09-12 08:11:12,140 - util.py[WARNING]: Running module bootcmd (<module 'cloudinit.config.cc_bootcmd' from '/usr/lib/python2.7/site-packages/cloudinit/config/cc_bootcmd.pyc'>) failed w$ K& D6 `8 T- z% J) f
% L: O$ z( _0 P" D" a
; d1 N& D4 ^% w6 f6 j" D$ Q" n
9 J$ h" J3 g1 o; I1 k$ o, I
: s' j4 z7 p5 k! C) V# |- d6 i9 |
语法格式:cloud-init [参数]
: A8 j# a& t* s' S) }5 E
8 p9 H/ G; T" o常用参数: init 初始化cloud-init并执行初始化模块
- v: g% j* O, `/ |6 P+ V, w1 C初始化
' ^2 p2 G B: k- T% k ?1 w$ g( g7 f1 B* P4 G
cloud-init并执行初始化模块:6 E2 F. z7 R. G+ e6 g- q6 r o
- ~; R+ }6 j: B* B
[root@cool ~]# cloud-init init
9 }0 C/ Q7 t4 S& p' q. ]' B2 S! G- N+ k m/ x; E8 E
使用给定的配置键激活模块:
* \" a& f1 d4 y% ~
6 L, V% E. s: m& d& c8 C9 p3 p[root@cool ~]# cloud-init modules, M3 j8 H; Y$ [6 j7 Q
8 t+ U1 x1 l' E$ \3 `
报告云启动状态或等待完成:7 I2 |- {- Y- F8 O5 {0 h
, S! a9 l# H ]! B. L[root@cool ~]# cloud-init status
2 z3 h/ m, a" F7 g2 }
* s) t2 q: o: Q* Y删除日志和工件,以便重新运行cloud-init:
. b, b: Q, k7 S# p" g
2 J( y1 N3 E% G2 O9 L& A[root@cool ~]# cloud-init clean( x. M# W9 B% o0 ^
" J B" o6 f* l; t f根据以上信息,得知我们需要自动扩容vda3分区(growpart)、扩容LVM和xfs文件系统(runcmd)。
5 o5 L4 ^- O1 X% d创建文件/etc/cloud/cloud.cfg.d/growpart.cfg
! M8 V* T+ h \+ r( ]vim /etc/cloud/cloud.cfg.d/growpart.cfg
- [, F3 b' T& \
: u% W4 ^$ B7 g, R#cloud-config$ t$ c. j x; Q& ?0 K$ q
growpart:7 H# D$ V: U" P& @% u7 r$ Z0 H
mode: auto/ k x$ @/ f/ O M; _: f! K
devices: [/dev/vda2]
8 [: p% h7 F F4 z; g$ p% V2 } ignore_growroot_disabled: false q! t7 Q: _1 P) o3 {( r# H; I* j( C
runcmd:
# m, X3 O, H" T# i* u! ^3 N' Q - [pvresize,/dev/vda2]
0 |( e* m2 P$ A* W# L - [lvextend,-l,+100%FREE,/dev/mapper/vklas-root]
' }9 E5 h3 R6 Q. ]1 T7 ^$ Y6 ` - [xfs_growfs,/]4 j0 ]' v6 }9 \ ~; H/ p
, L% [, A% P& t3 u7 D- A% x. |5 g) g
注意:文件系统为ext2、ext3、ext4,则采用通过resize2fs 进行调整$ r6 U, P. \1 ^/ f3 ~: N7 {7 c9 T$ j$ A
F" M# J& u. w+ P2 X
2.5 每次重启均调整, U9 n( {5 n/ e. V
; x A! c% V/ w: |( x' t0 h
该需求涉及到云平台会有调整虚拟机的需求,也就是虚拟机磁盘进行调整后,文件系统也依然需要调整,故衍生出每次调整后自动扩容的了。
& z8 w# {( |& A$ G+ {6 o不同的cloud-init模块有不同的执行频次:once-per-instance 、 always。可以在Modules文档中https://cloudinit.readthedocs.io/en/latest/topics/modules.html: C0 H# l+ O9 s" x. M. ~7 [) y
查看每个模块的Module frequency属性。例如,bootcmd在每次引导时运行,而runcmd只在第一次引导时运行。频次也可以在cloud.cfg配置文件模块列表中覆盖——cloud_init_modules, cloud_config_modules和cloud_final_modules。& ?0 r* t; ?. j. J' h* t' K
故我们有bootcmd和runcmd两种方法实现该需求。3 K4 l; ]9 ~9 U' x8 C
( \& s4 x- w# T' {% lruncmd8 C% x; E; E3 v
通过修改/etc/cloud/cloud.cfg文件,覆盖模块频次
3 S# ^ ] h: N7 _: L) j6 \# g7 lvim /etc/cloud/cloud.cfg
8 `/ x! \3 v' X, s: o; |7 B; F3 o! u( s7 G. t& _: ~0 w8 e5 c! H
cloud_config_modules:
3 n4 I6 r5 c9 F$ _& p4 ` - [runcmd,always]
3 |* u6 k+ R o3 F, G5 X$ E# A6 y
2.5.2 bootcmd
~) M, [0 T2 N修改/etc/cloud/cloud.cfg.d/growpart.cfg,将runcmd替换成bootcmd,全文如下:
* k7 r8 v: E- p' G8 _5 r5 G0 _( Z, t7 A" l: t9 r2 G; {; R* y+ L
#cloud-config" l4 L2 U9 O' r' g* l
growpart:# w- B, D6 F u( q3 G
mode: auto
! w$ ~- T) q+ N* S% m' Q devices: [/dev/vda2]6 X3 K7 f$ H* ^" f( z
ignore_growroot_disabled: false9 D6 ]/ m9 U) {! q2 m" ]
bootcmd:
1 T- \ G& ]! F: e" L, P1 B7 f - [pvresize,/dev/vda2]# {( |- T- B3 J# I6 C+ R$ z. e% |
- [lvextend,-l,+100%FREE,/dev/mapper/vklas-root]/ s S* [: \; L7 b" h* i
- [xfs_growfs,/]/ L. B' ?7 a9 [: U
9 E5 P: e6 n; p+ v2 @在云平台中调整后,还需再次重启才能生效
% X. {8 ]7 Q/ L4 t$ ]- V! H
# f8 ?: x+ j8 \; Z3 L2 b/ N7 O- S. W5 b, ?* C2 X( U, B3 J
1 t C4 j% ?/ o# `: E
|
|