main

Понедельничное про F::I agent

Утро началось с расследования вот такой строчки в логах:

Oct  3 13:42:14 gw su: pam_acct_mgmt: authentication error

По времени было вычислено, что это fusioninventory-agent Конкретный виновник - FusionInventory::Agent::Task::Inventory::Virtualization::VirtualBox Вобщем зацените эту красоту:

# assume all system users with a suitable homedir is an actual human user
my $pattern = $OSNAME eq 'darwin' ?
    qr{^/Users} : qr{^/home}; # <- венда традиционно сосёт

my @users;
while (my $user = getpwent()) {
    next unless $user->dir() =~ /$pattern/;
    push @users, $user->name();
}

# abort if too many users
return if @users > 10; # <- убивать!

foreach my $user (@users) {
    my $command = "su '$user' -c 'VBoxManage -nologo list --long vms'"; # <- убивать!
    foreach my $machine (_parseVBoxManage(
        logger => $logger, command => $command
    )) {
        $machine->{OWNER} = $user;
        $inventory->addEntry(
            section => 'VIRTUALMACHINES', entry => $machine
        );
    }
}

Всплыло это потому, что недавно залочили одного из юзеров. #168

А ещё удивительные вещи можно узнать, если ПОПРОБОВАТЬ в агенте выключить сжатие того что идёт на сервер. Из конструктора модуля FusionInventory::Agent::HTTP::Client::OCS:

# check compression mode
if (Compress::Zlib->require()) {
    # RFC 1950
    $self->{compression} = 'zlib';
    $self->{ua}->default_header('Content-type' => 'application/x-compress-zlib');
    $self->{logger}->debug(
        $log_prefix .
        'Using Compress::Zlib for compression'
    );
} elsif (canRun('gzip')) {
    # RFC 1952
    $self->{compression} = 'gzip';
    $self->{ua}->default_header('Content-type' => 'application/x-compress-gzip');
    $self->{logger}->debug(
        $log_prefix .
        'Using gzip for compression'
    );
} else {
    $self->{compression} = 'none';
    $self->{ua}->default_header('Content-type' => 'application/xml');
    $self->{logger}->debug(
        $log_prefix .
        'Not using compression'
    );
}

т.е. чтобы оно не сжимало, тебе надо от него спрятать не только Compress::Zlib, но и утилитку gzip. И тогда, так уж и быть, оно сжимать не будет. #169