参考官方文档与部署环境学习
ceilometer yoga版本一个ipmi指标hardware.ipmi.node.power采集主机电源功率,存在两个问题:1默认采集逻辑只能在intel平台跑,无法在非intel跑, 2无rootwrap daemon情况下无法采集。解决这两个问题的过程用到了rootwrap
ceilometer进程用非root用户启动,而ipmitool命令执行需要root权限,可放大ipmitool权限,或者使用rootwrap提权解决,由于开源代码默认使用rootwrap解决此问题,但没起rootwrap daemon,使用rootwrap可以用daemon,也可以用非daemon方式,但非daemon稍占cpu,由于提权次数不是很多,暂时用非daemon提权
参考nova修改
添加一个regexpfilter或commandfilter,command filter有风险。添加完了切换用户自测一下
主机没装ipmitool的话需要装ipmitool,apt install ipmitool,网不通,当时配了下resolv.conf,先备份下,加几个dns,8.8.8.8和8.8.4.4就好了,装好了在删掉dns
提权使用了oslo.concurrency.processutils.execute,传入run_as_root=True和root_helper=ceilometer.utils._get_root_helper()方法,传入的命令序列参数需要解包。方法返回命令执行结果和错误信息,正常情况错误信息为空