Spec-Zone.ru › Chef 16

Ресурс 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
Ресурс windows_firewall_rule
  • Синтаксис
  • Действия
  • Свойства
  • Общие функции ресурса
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

© 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/

Spec-Zone.ru

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