搭建新基础设施的CFEngine配置指南
立即解锁
发布时间: 2025-08-24 00:28:59 阅读量: 1 订阅数: 4 

### 搭建新基础设施的CFEngine配置指南
#### 1. 缺失文件的生成
如果`ql`]pa*_kjb`文件缺失,可以使用脚本中前面定义的`_na]pa[ql`]pa[_kjb$%`子程序来生成它:
```plaintext
eb W )b ?BSKNG@EN+ejlqpo+ql`]pa*_kjb Y7 pdaj
_na]pa[ql`]pa[_kjb
be
```
若主机的CFEngine密钥缺失,也需要生成它,这是`_b*lna_kjb`的最后一行代码:
```plaintext
W )b ?BSKNG@EN+llgauo+hk_]hdkop*lner Y xx _bgau
```
#### 2. `update.conf`文件
当`_bata_`调度守护进程执行`_b]cajp`时,会先读取`ql`]pa*_kjb`配置文件,再读取`_b]cajp*_kjb`。该文件包含了CFEngine其他配置文件中的私有类和变量,能确保本地配置文件是最新的。此外,还可利用它来确保一些重要操作尽早执行,例如:
- 强制某些目录的存在和权限设置。
- 确认CFEngine守护进程正在运行。
- 执行一些基本的清理操作。
下面是`campin.net`的`ql`]pa*_kjb`文件,开头是给未来维护者的警告注释:
```plaintext
Pdeo o_nelp `eopne^qpao pda _kjbecqn]pekj( ] oeilha beha ok pd]p(
eb pdana ]na oujp]t annkno ej pda i]ej _kjbec( sa _]j opehh
`eopne^qpa ] _knna_p _kjbecqn]pekj pk pda i]_dejao ]bpans]n`o( araj
pdkqcd pda i]ej _kjbec skj#p l]noa* Ep eo na]` ]j` nqj fqop ^abkna
pda i]ej _kjbecqn]pekj eo l]noa`*
Ukq ]hikop JARAN s]jp pk ik`ebu pdeo beha( ukq neog ^na]gejc
aranupdejc eb ep#o jkp _knna_p
```
#### 3. `ql`]pa*_kjb`文件内容
`ql`]pa*_kjb`文件中有一部分内容与`_b*lna_kjb`文件中嵌入的内容相同:
```plaintext
_kjpnkh6
okh]neoxokh]neot4266
_b[^]oa[l]pd 9 $ +klp+_os+o^ej %
skng`en 9 $ +r]n+_bajceja %
_heajp[_bejlqp 9 $ +r]n+_bajceja+ejlqpo %
`a^e]j66
_b[^]oa[l]pd 9 $ +qon+o^ej %
skng`en 9 $ +r]n+he^+_bajceja. %
_heajp[_bejlqp 9 $ +r]n+he^+_bajceja.+ejlqpo %
na`d]p66
_b[^]oa[l]pd 9 $ +qon+lgc+_bajceja+o^ej %
skng`en 9 $ +r]n+_bajceja %
_heajp[_bejlqp 9 $ +r]n+_bajceja+ejlqpo %
`a^e]j* na`d]p* $okh]neoxokh]neot42%66
_b[^]oa[l]pd 9 $ +qon+lgc+_bajceja+o^ej %
skng`en 9 $ +r]n+_bajceja %
_heajp[_bejlqp 9 $ +r]n+_bajceja+ejlqpo %
```
与`_b*lna_kjb`中嵌入的文件相比,`ql`]pa*_kjb`文件还有额外的操作:
```plaintext
]ju66
]_pekjoamqaj_a 9 $
hejgo
`ena_pkneao
_klu
lnk_aooao*EbAh]loa`,
pe`u
%
```
每次在`]_pekjoamqaj_a`中添加或删除项目时,都要仔细检查顺序是否仍然正确。
#### 4. 运行时类的定义
使用`]``ejop]hh]^ha`行让CFEngine知道可能在运行时定义新类:
```plaintext
=``ejop]hh]^ha 9 $ dql_bata_`]j`_boanr` %
```
CFEngine是单遍解释器,它会为当前运行中可能需要的类分配内部空间。
#### 5. 随机休眠设置
将`Olh]uPeia`设置为1,表示`_b]cajp`在执行任何操作前会随机休眠0到5分钟:
```plaintext
`ki]ej 9 $ _]ilej*jap %
lkhe_udkop 9 $ ckh`i]opan*_]ilej*jap %
behaoanran 9 $ ckh`i]opan*_]ilej*jap %
i]opan[_bejlqp 9 $ +r]n+he^+_bajceja.+i]opanbehao+LNK@+ejlqpo %
Olh]uPeia 9 $ 1 %
```
#### 6. 配置文件目录复制
`_klu`操作与`_b*lna_kjb`中嵌入的CFEngine配置文件目录复制操作相同,每次`_b]cajp`运行时,会复制主`ejlqpo`树,以保持本地CFEngine配置文件的更新:
```plaintext
_klu6
$i]opan[_bejlqp%+
`aop9 $skng`en%+ejlqpo+
n9ejb
ik`a93,,
pula9_da_goqi
ecjkna9N?O
ecjkna9*orj
ksjan9nkkp
cnkql9nkkp
ecjkna9&(r
lqnca9pnqa
oanran9 $lkhe_udkop%
pnqopgau9pnqa
aj_nulp9pnqa
```
#### 7. 目录权限设置
使用`ena_pkneao`操作来强制重要CFEngine目录的存在和正确权限:
```plaintext
`ena_pkneao6
]ju66
$skng`en%+^]_gqlo ik`a93,, ksjan9nkkp cnkql9nkkp
$skng`en%+ejlqpo ik`a93,, ksjan9nkkp cnkql9nkkp
$skng`en%+kqplqpo ik`a93,, ksjan9nkkp cnkql9nkkp
$skng`en%+llgauo ik`a93,, ksjan9nkkp cnkql9nkkp
$skng`en%+_bajceja+oqio ik`a93,, ksjan9nkkp cnkql9nkkp
$skng`en%+pil ik`a93,, ksjan9nkkp cnkql9nkkp
`a^e]j66
$skng`en%+^ej ik`a93,, ksjan9nkkp cnkql9nkkp
```
出于安全考虑,不要允许对这些目录进行全局访问(即使是只读访问)。如果之后决定允许由CFEngine管理员组成的UNIX组访问,可以轻松更改组权限和所有权。
#### 8. 日志文件清理
`_bata_`守护进程会将`_b]cajp`的输出存储在`$skng`en%+kqplqpo`目录中,并在配置后通过电子邮件发送输出。为避免该目录无限增长,会删除7天以上的文件:
```plaintext
pe`u6
]ju66
$skng`en%+kqplqpo l]ppanj9& ]ca93
```
#### 9. 进程监控
对CFEngine守护进程进行与之前相同的进程监控:
```plaintext
lnk_aooao6
]ju66
_bata_` naop]np $_b[^]oa[l]pd%+_bata_`
_boanr` naop]np $_b[^]oa[l]pd%+_boanr`
_bajr` naop]np $_b[^]oa[l]pd%+_bajr`
dql_bata_`]j`_boanr`66
_bata_` oecj]h9dql ejbkni9pnqa
_boanr` oecj]h9dql ejbkni9pnqa
```
#### 10. 符号链接与信号发送
在`hejgo`部分定义`dql_bata_`]j`_boanr`类时,CFEngine会向`_bata_`和`_boanr`进程发送HUP信号,其工作原理如下:
1. 如果`$skng`en%+^ej+_b]cajp`指向`
0
0
复制全文
相关推荐







