Ресурс 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/