Ресурс os_env
Используйте ресурс аудита Chef InSpec, чтобы протестировать переменные окружения для платформы, на которой работает система.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.
Синтаксис
Блок ресурса os_env объявляет переменную окружения и ее значение:
describe os_env('VARIABLE') do
its('property') { should eq 1 }
end
где
-
('VARIABLE')должно указывать на переменную окружения, например,PATH -
matcher— это допустимый матчер для данного ресурса
Примеры
Следующие примеры показывают, как использовать этот ресурс аудита Chef InSpec.
Проверка переменной окружения PATH
describe os_env('PATH') do
its('split') { should_not include('') }
its('split') { should_not include('.') }
end
Проверка переменной окружения Path, указав целевую среду (Windows)
В Windows переменная окружения пользователя может скрывать локальную переменную окружения (системы). Правильная переменная окружения может быть проверена следующим образом:
describe os_env('PATH', 'target') do
its('split') { should_not include('') }
its('split') { should_not include('.') }
end
где
-
'target'может быть либоsystemлибоuser
Проверка переменных окружения Chef Habitat
Chef Habitat использует ресурс os_env для проверки переменных окружения. Сначала переменные окружения определяются в массиве со пробелами, после чего каждая переменная окружения проверяется:
hab_env_vars = %w(HAB_AUTH_TOKEN
HAB_CACHE_KEY_PATH
HAB_DEPOT_URL
HAB_ORG
HAB_ORIGIN
HAB_ORIGIN_KEYS
HAB_RING
HAB_RING_KEY
HAB_STUDIOS_HOME
HAB_STUDIO_ROOT
HAB_USER)
hab_env_vars.each do |e|
describe os_env(e) do
its('content') { should eq nil }
end
end
Матчеры
Полный список доступных матчеров можно найти на нашей странице матчеров.
content
Матчер content возвращает значение переменной окружения:
its('content') { should eq '/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin' }
split
Матчер split разделяет значение переменной окружения с помощью разделителя : (используйте разделитель ; для Windows):
its('split') { should include ('/usr/bin') }
Примечание: матчер split возвращает массив, включающий "" в случаях, когда есть конечная двоеточие (:), например dir1::dir2:
© 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/os_env/