пакет resource
Используйте ресурс аудита package Chef InSpec, чтобы проверить, установлен ли указанный пакет и/или версия пакета на системе.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.
Синтаксис
Блок ресурса package объявляет пакет и (необязательно) версию пакета:
describe package('name') do
it { should be_installed }
end
где
-
('name')должен указывать имя пакета, например'nginx' -
be_installedявляется допустимым соответствием для этого ресурса
Свойства
version
Свойство version проверяет, установлена ли указанная версия пакета на системе:
its('version') { should eq '1.2.3' }
Вы также можете использовать соответствие cmp для выполнения сравнений с использованием атрибута version:
its('version') { should cmp >= '7.35.0-1ubuntu3.10' }
cmp понимает номера версий с помощью Gem::Version и может использовать операторы ==, <, <=, >=, and >. Она будет сравнивать версии по каждому сегменту, а не как строку — например, «7.4» меньше, чем «7.30».
Примеры
В следующих примерах показано, как использовать этот ресурс аудита Chef InSpec.
Проверка установки пакета NGINX версии 1.9.5
describe package('nginx') do
it { should be_installed }
its('version') { should eq '1.9.5' }
end
Проверка отсутствия пакета
describe package('some_package') do
it { should_not be_installed }
end
Проверка отсутствия пакета telnet
describe package('telnetd') do
it { should_not be_installed }
end
describe inetd_conf do
its('telnet') { should eq nil }
end
Проверка установки и работы ClamAV (антивирусного движка)
describe package('clamav') do
it { should be_installed }
its('version') { should eq '0.98.7' }
end
describe service('clamd') do
it { should be_enabled }
it { should be_installed }
it { should be_running }
end
Проверка установки пакета согласно моей базе данных rpm
describe package('some_package', rpm_dbpath: '/var/lib/my_rpmdb') do
it { should be_installed }
end
Проверка установки, включения и работы Memcached
Memcached — это кэширующая система, которая помогает повысить производительность сайтов, работающих с базами данных. Memcached можно установить, настроить и протестировать с помощью кулинарной книги memcached (поддерживается Chef). В следующем примере из кулинарной книги memcached показано, как использовать комбинацию ресурсов аудита package, service, и port Chef InSpec для проверки установки, включения и работы Memcached:
describe package('memcached') do
it { should be_installed }
end
describe service('memcached') do
it { should be_installed }
it { should be_enabled }
it { should be_running }
end
describe port(11_211) do
it { should be_listening }
end
Соответствия
Полный список доступных соответствий вы найдете на нашей странице соответствий.
be_held
Соответствие be_held проверяет, является ли указанный пакет «задержанным». На платформах dpkg «задержанный» пакет не будет обновлён до более поздней версии.
it { should be_held }
be_installed
Соответствие be_installed проверяет, установлен ли указанный пакет на системе:
it { should be_installed }
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/package/