我正在使用vSphere CLI 6.5.0从 Perl 脚本重置 VM。在上下文中,这是 Pacemaker 的(专有)STONITH 插件。
在 STONITH 之后立即报告属于 vSphere CLIjournalctl -u pacemaker
的警告。vmcontrol.pl
警告由 Pacemaker 报告fence_legacy
,属于 Pacemaker。
Use of uninitialized value $hostname in concatenation (.) or string at
/opt/vmware-vsphere-cli-distrib/apps/vm/vmcontrol.pl line 168.
错误发生在对UTIL::trace
以下上下文的调用中:
sub reset_vm {
foreach (@$vm_views) {
my $mor_host = $_->runtime->host;
my $hostname = Vim::get_view(mo_ref => $mor_host)->name;
eval {
$_->ResetVM();
Util::trace(0, "\nvirtual machine '" . $_->name . "' under host".
" $hostname reset successfully ");
};
我想知道这是一个功能还是一个错误。是不是因为 VM 正在重新启动Vim::get_view
而无法报告主机名(因此$hostname
无法初始化)时与 VMware 通信?
这听起来不太可能(例如,因为调用ResetVM
发生在分配给之后$hostname
),但我怀疑这样的事情正在发生,在这种情况下可以忽略警告。我还怀疑该问题仅与 vSphere CLI 有关(即不是由其在 Pacemaker 堆栈中的使用引起的)。