Ресурс etc_hosts
Используйте ресурс проверки Chef InSpec, чтобы проверить правила, заданные для сопоставления IP-адресов с именами хостов.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.37.6 InSpec.
Синтаксис
Правило etc/hosts указывает IP-адрес, его имя хоста и необязательные псевдонимы.
Синтаксис
Используйте .where предложение для сопоставления свойства с одним или несколькими правилами в файле hosts:
describe etc_hosts.where { ip_address == 'value' } do
its('primary_name') { should cmp 'hostname' }
its('all_host_names') { should cmp 'list' }
end
Используйте необязательный параметр ресурса для указания альтернативного пути к файлу hosts:
describe etc_hosts('path/to/hosts').where { ip_address == 'value' } do
its('primary_name') { should cmp 'hostname' }
its('all_host_names') { should cmp 'list' }
end
где
-
ip_address— IP-адрес имени хоста в формате IPv4 или IPv6. -
primary_name— имя, связанное с IP-адресом. -
all_host_names— список, включающий primary_name в качестве первого элемента, а затем любые псевдонимы хоста.
Свойства
ip_address
Свойство ip_address возвращает массив строк IP-адресов, указанных в файле etc/hosts.
its('ip_address') { should cmp '127.0.1.154' }
primary_name
Свойство primary_name возвращает массив строк primary_names, указанных в файле etc/hosts.
its('primary_name') { should cmp 'localhost' }
all_host_names
Свойство all_host_names возвращает двумерный массив строк, где каждый элемент содержит primary_name вначале, а затем любые псевдонимы.
its('all_host_names') { should cmp 'list' }
Примеры
Проверка IP-адреса заданного основного имени «localhost».
describe etc_hosts.where { primary_name == 'localhost' } do
its('ip_address') { should cmp '127.0.1.154' }
end
Проверка основного имени для IP-адреса «::1»
describe etc_hosts.where { ip_address == '::1' } do
its('primary_name') { should cmp 'localhost' }
end
Проверка списка основных имен и их псевдонимов для заданного IP-адреса.
describe etc_hosts.where { ip_address == '127.0.1.154' } do
its('all_host_names') { should eq [['localhost', 'localhost.localdomain', 'localhost4', 'localhost4.localdomain4'], ['localhost', 'localhost.localdomain', 'localhost6', 'localhost6.localdomain6']] }
end
Матчеры
Полный список доступных матчеров можно найти на нашей странице матчеров.
© 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/etc_hosts/