Ресурс etc_hosts
Используйте ресурс аудита Chef InSpec, чтобы проверить правила, заданные для соответствия IP-адресов именам хостов.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен в версии InSpec v1.37.6.
Синтаксис
Правило в файле 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', 'primary_name', 'all_host_names'
Примеры свойств
ip_address
ip_address возвращает массив строк с IP-адресами, указанными в файле etc/hosts.
describe etc_hosts.where { primary_name == 'localhost' } do
its('ip_address') { should cmp '127.0.1.154' }
end
primary_name
primary_name возвращает массив строк с основными именами (primary_names), указанными в файле etc/hosts.
describe etc_hosts.where { ip_address == '::1' } do
its('primary_name') { should cmp 'localhost' }
end
all_host_names
all_host_names возвращает двумерный массив строк, где каждый элемент содержит основное имя (primary_name) вначале, а затем любые псевдонимы.
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/