пакет resource
Используйте ресурс аудита package Chef InSpec, чтобы проверить, установлен ли на системе указанный пакет и/или версия пакета.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен в версии v1.0.0 InSpec.
Синтаксис
Блок ресурса package объявляет пакет и (необязательно) версию пакета:
describe package('name') do
it { should be_installed }
end
где
-
('name')должен указать имя пакета, например'nginx' -
be_installed— это допустимый матчер для данного ресурса
Примеры
Следующие примеры демонстрируют, как использовать этот ресурс аудита 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 (разработанной 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 }
версия
Матчер version проверяет, есть ли на системе указанная версия пакета:
its('version') { should eq '1.2.3' }
Вы также можете использовать матчер cmp OPERATOR для выполнения сравнений с использованием атрибута version:
its('version') { should cmp >= '7.35.0-1ubuntu3.10' }
cmp понимает номера версий с помощью Gem::Version и может использовать операторы ==, <, <=, >=, and >. Он будет сравнивать версии по каждому сегменту, а не как строки — например, «7.4» меньше, чем «7.30».
© 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/