Spec-Zone.ru › Chef 16

Ресурс os_env

[править на GitHub]

Используйте ресурс аудита 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API