Ресурс windows_firewall_rule
Эта страница сгенерирована из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл windows_firewall_rule.rb и отправьте запрос на вытягивание в репозиторий Chef.
Страница справочника по ресурсам
Используйте ресурс windows_firewall_rule для создания, изменения или удаления правил брандмауэра Windows.
Новое в Chef Infra Client 14.7.
Синтаксис
Полный синтаксис для всех свойств, доступных ресурсу windows_firewall_rule, следующий:
windows_firewall_rule 'name' do
description String
direction Symbol, String # default value: :inbound
displayname String # default value: The rule_name property value.
enabled true, false # default value: true
firewall_action Symbol, String # default value: :allow
group String
icmp_type String, Integer # default value: "Any"
interface_type Symbol, String # default value: :any
local_address String
local_port String, Integer, Array
profile Symbol, String, Array # default value: :any
program String
protocol String # default value: "TCP"
remote_address String
remote_port String, Integer, Array
rule_name String # default value: 'name' unless specified
service String
action Symbol # defaults to :create if not specified
endгде:
-
windows_firewall_rule— это ресурс. -
name— это имя, присвоенное блоку ресурса. -
actionопределяет, какие шаги предпримет Chef Infra Client, чтобы привести узел в желаемое состояние. -
description,direction,displayname,enabled,firewall_action,group,icmp_type,interface_type,local_address,local_port,profile,program,protocol,remote_address,remote_port,rule_name, иservice— это свойства, доступные для этого ресурса.
Действия
Ресурс windows_firewall_rule имеет следующие действия:
:create- Создать запись брандмауэра Windows.
:delete- Удалить существующую запись брандмауэра Windows.
:nothing- Этот блок ресурса не выполняет никаких действий, если не получит уведомление от другого ресурса о необходимости выполнить действие. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
Свойства
Ресурс windows_firewall_rule имеет следующие свойства:
description-
Тип Ruby: String
Описание, которое нужно назначить правилу брандмауэра.
direction-
Тип Ruby: Symbol, String | Значение по умолчанию:
:inboundДопустимые значения::inbound, :outboundНаправление правила брандмауэра. Направление означает входящий или исходящий трафик.
displayname-
Тип Ruby: String | Значение по умолчанию:
The rule_name property value.Отображаемое имя, которое нужно назначить правилу брандмауэра.
Новое в Chef Infra Client 16.0
enabled-
Тип Ruby: true, false | Значение по умолчанию:
trueВключать или нет правило брандмауэра.
firewall_action-
Тип Ruby: Symbol, String | Значение по умолчанию:
:allowДопустимые значения::allow, :block, :notconfiguredДействие правила брандмауэра.
group-
Тип Ruby: String
Указывает, что копируются только соответствующие правила брандмауэра указанной групповой ассоциации.
Новое в Chef Infra Client 16.0
icmp_type-
Тип Ruby: String, Integer | Значение по умолчанию:
AnyУказывает параметр типа ICMP для использования протокола, начинающегося с ICMP
Новое в Chef Infra Client 16.0
interface_type-
Тип Ruby: Symbol, String | Значение по умолчанию:
:anyДопустимые значения::any, :remoteaccess, :wired, :wirelessТип интерфейса, к которому применяется правило брандмауэра.
local_address-
Тип Ruby: String
Локальный адрес, к которому применяется правило брандмауэра.
local_port-
Тип Ruby: String, Integer, Array
Локальный порт, к которому применяется правило брандмауэра.
profile-
Тип Ruby: Symbol, String, Array | Значение по умолчанию:
:anyПрофиль, к которому применяется правило брандмауэра.
program-
Тип Ruby: String
Программа, к которой применяется правило брандмауэра.
protocol-
Тип Ruby: String | Значение по умолчанию:
TCPПротокол, к которому применяется правило брандмауэра.
remote_address-
Тип Ruby: String
Удаленный адрес, к которому применяется правило брандмауэра.
remote_port-
Тип Ruby: String, Integer, Array
Удаленный порт, к которому применяется правило брандмауэра.
rule_name-
Тип Ruby: String | Значение по умолчанию:
The resource block's nameНеобязательное свойство для установки имени правила брандмауэра, которое нужно назначить, если оно отличается от имени блока ресурса.
service-
Тип Ruby: String
Сервис, к которому применяется правило брандмауэра.
Общие функции ресурса
Ресурсы Chef включают общие свойства, уведомления и средства защиты ресурсов.
Общие свойства
Следующие свойства являются общими для каждого ресурса:
compile_time-
Тип Ruby: true, false | Значение по умолчанию:
falseУправление фазой, во время которой ресурс запускается на узле. Установите значение true, чтобы запустить во время построения коллекции ресурсов (
compile phase). Установите значение false, чтобы запустить во время настройки узла Chef Infra Client (converge phase). ignore_failure-
Тип Ruby: true, false, :quiet | Значение по умолчанию:
falseПродолжать выполнение рецепта, если ресурс завершится неудачей по любой причине.
:quietне будет отображать полный трассировки стека, и рецепт будет продолжать выполняться, если ресурс завершится неудачей. retries-
Тип Ruby: Integer | Значение по умолчанию:
0Количество попыток перехвата исключений и повтора попытки использования ресурса.
retry_delay-
Тип Ruby: Integer | Значение по умолчанию:
2Задержка повтора (в секундах).
sensitive-
Тип Ruby: true, false | Значение по умолчанию:
falseУбедитесь, что конфиденциальные данные ресурса не регистрируются Chef InfraClient.
Уведомления
notifies-
Тип Ruby: Symbol, 'Chef::Resource[String]'
Ресурс может уведомить другой ресурс о необходимости выполнить действие, когда его состояние изменится. Укажите
'resource[name]',:action, которое должен выполнить этот ресурс, а затем:timerдля этого действия. Ресурс может уведомить более чем один ресурс; используйте инструкциюnotifiesдля каждого ресурса, который нужно уведомить.Если указанный ресурс не существует, возникает ошибка. В отличие от этого,
subscribesне завершится ошибкой, если исходный ресурс не найден.
Таймер указывает момент выполнения Chef Infra Client, когда выполняется уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие в уведомленном ресурсе должно выполняться до обработки блока ресурса, в котором находится уведомление.
:delayedЗначение по умолчанию. Указывает, что уведомление должно быть помещено в очередь, а затем выполнено в конце выполнения Chef Infra Client.
-
:immediate,:immediately Указывает, что уведомление должно выполняться немедленно для каждого уведомленного ресурса.
Синтаксис для notifies следующий:
notifies :action, 'resource[name]', :timer
subscribesТип Ruby: Symbol, 'Chef::Resource[String]'
Ресурс может прослушивать другой ресурс, а затем выполнять действие, если состояние прослушиваемого ресурса изменится. Укажите 'resource[name]', :action, которое нужно выполнить, а затем :timer для этого действия.
Обратите внимание, что subscribes не применяет указанное действие к ресурсу, который он прослушивает — например:
file '/etc/nginx/ssl/example.crt' do
mode '0600'
owner 'root'
end
service 'nginx' do
subscribes :reload, 'file[/etc/nginx/ssl/example.crt]', :immediately
end
В этом случае свойство subscribes перезагружает службу nginx, когда обновляется ее файл сертификата, расположенный в /etc/nginx/ssl/example.crt. subscribes не вносит никаких изменений в сам файл сертификата, он просто прослушивает изменения файла и выполняет действие :reload для своего ресурса (в этом примере nginx) при обнаружении изменения.
Если другой ресурс не существует, подписка не вызовет ошибку. Сравните это с более строгими семантическими правилами notifies, которые вызовут ошибку, если другой ресурс не существует.
Таймер указывает момент выполнения Chef Infra Client, когда выполняется уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие в уведомленном ресурсе должно выполняться до обработки блока ресурса, в котором находится уведомление.
:delayedЗначение по умолчанию. Указывает, что уведомление должно быть помещено в очередь, а затем выполнено в конце выполнения Chef Infra Client.
-
:immediate,:immediately Указывает, что уведомление должно выполняться немедленно для каждого уведомленного ресурса.
Синтаксис для subscribes следующий:
subscribes :action, 'resource[name]', :timer
Средства защиты
Свойство защиты может использоваться для оценки состояния узла во время фазы выполнения запуска Chef Infra Client. На основе результатов этой оценки свойство защиты используется для того, чтобы сообщить Chef Infra Client, следует ли продолжать выполнение ресурса. Свойство защиты принимает в качестве значения либо строку, либо блок Ruby:
- Строка выполняется как команда оболочки. Если команда возвращает
0, применяется защита. Если команда возвращает любое другое значение, свойство защиты не применяется. Строковые защиты в powershell_script выполняют команды Windows PowerShell и могут возвращатьtrueв дополнение к0. - Блок выполняется как код Ruby, который должен вернуть либо
trueилиfalse. Если блок возвращаетtrue, свойство защиты применяется. Если блок возвращаетfalse, свойство защиты не применяется.
Свойство защиты полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверять желаемое состояние во время выполнения, а затем, если желаемое состояние присутствует, Chef Infra Client ничего не делать.
СвойстваСледующие свойства могут быть использованы для определения защиты, которая оценивается во время фазы выполнения выполнения Chef Infra Client:
not_ifЗапретить выполнение ресурса, когда условие возвращает
true.only_ifРазрешить выполнение ресурса только в том случае, если условие возвращает
true.
Примеры
Следующие примеры демонстрируют различные подходы к использованию ресурса windows_firewall_rule в рецептах:
Разрешение доступа к порту 80:
windows_firewall_rule 'IIS' do
local_port '80'
protocol 'TCP'
firewall_action :allow
end
Разрешение протокола ICMPv6 с типом ICMP:
windows_firewall_rule 'CoreNet-Rule' do
rule_name 'CoreNet-ICMP6-LR2-In'
display_name 'Core Networking - Multicast Listener Report v2 (ICMPv6-In)'
local_port 'RPC'
protocol 'ICMPv6'
icmp_type '8'
end
Блокирование WinRM по HTTP по определенному IP:
windows_firewall_rule 'Disable WinRM over HTTP' do
local_port '5985'
protocol 'TCP'
firewall_action :block
local_address '192.168.1.1'
end
Удаление существующего правила
windows_firewall_rule 'Remove the SSH rule' do
rule_name 'ssh'
action :delete
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/resources/windows_firewall_rule/