Spec-Zone.ru › Chef 18

Ресурс ifconfig

Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменение, отредактируйте файл ifconfig.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.

Все страницы ресурсов Infra


Используйте ресурс ifconfig для управления интерфейсами на системах Unix и Linux.

Примечание

Для этого ресурса необходимо наличие утилиты ifconfig на системе, а также возможно потребуется предварительная установка дополнительных пакетов. На Ubuntu 18.04 и более поздних версиях необходимо установить пакет ifupdown, который отключает встроенную функциональность Netplan.

Предупреждение

Этот ресурс не будет работать с Fedora релизом 33 и более поздними.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса ifconfig:

ifconfig 'name' do
  bcast             String
  bonding_opts      String
  bootproto         String
  bridge            String
  device            String
  ethtool_opts      String
  family            String # default value: "inet"
  gateway           String
  hwaddr            String
  inet_addr         String
  mask              String
  master            String
  metric            String
  mtu               String
  network           String
  onboot            String
  onparent          String
  slave             String
  target            String # default value: 'name' unless specified
  vlan              String
  action            Symbol # defaults to :add if not specified
end

где:

  • ifconfig — ресурс.
  • name — имя блока ресурса.
  • action определяет действия, которые Chef Infra Client предпримет для перевода узла в желаемое состояние.
  • bcast, bonding_opts, bootproto, bridge, device, ethtool_opts, family, gateway, hwaddr, inet_addr, mask, master, metric, mtu, network, onboot, onparent, slave, target, и vlan — доступные свойства этого ресурса.

Действия


Ресурс ifconfig имеет следующие действия:

:add
Выполнить ifconfig для настройки сетевого интерфейса и (на некоторых платформах) создать файл конфигурации для этого интерфейса. (по умолчанию)
:delete
Выполнить ifconfig для отключения сетевого интерфейса и (на некоторых платформах) удалить файл конфигурации этого интерфейса.
:disable
Выполнить ifconfig для отключения сетевого интерфейса.
:enable
Выполнить ifconfig для включения сетевого интерфейса.
:nothing
Этот блок ресурса не выполняет никаких действий, пока не получит уведомление от другого ресурса. После получения уведомления, этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс ifconfig имеет следующие свойства:

bcast
Тип в Ruby: Строка

Адрес широковещательной рассылки для сетевого интерфейса. На некоторых платформах это свойство не задается с помощью ifconfig, а добавляется в файл конфигурации запуска сетевого интерфейса.

bonding_opts
Тип в Ruby: Строка

Параметры объединения, передаваемые через BONDING_OPTS на RHEL и CentOS. Например: mode=active-backup miimon=100.

Новое в Chef Client 13.4

bootproto
Тип в Ruby: Строка

Протокол загрузки, используемый сетевым интерфейсом.

bridge
Тип в Ruby: Строка

Мостовой интерфейс, членом которого является этот интерфейс, в системах на базе Red Hat.

Новое в Chef Infra Client 16.7

device
Тип в Ruby: Строка

Сетевой интерфейс, подлежащий настройке.

ethtool_opts
Тип в Ruby: Строка

Параметры, передаваемые команде ethtool(8). Например: -A eth0 autoneg off rx off tx off.

Новое в Chef Client 13.4

family
Тип в Ruby: Строка | Значение по умолчанию: inet

Опция семейства сетевых технологий для систем на базе Debian; например: inet или inet6.

Новое в Chef Client 14.0

gateway
Тип в Ruby: Строка

Шлюз для использования интерфейсом.

Новое в Chef Client 14.4

hwaddr
Тип в Ruby: Строка

Физический адрес сетевого интерфейса.

inet_addr
Тип в Ruby: Строка

Адрес интернет-хоста для сетевого интерфейса.

mask
Тип в Ruby: Строка

Десятичное представление маски сети. Например: 255.255.255.0.

master
Тип в Ruby: Строка

Указывает интерфейс объединения каналов, к которому подключен Ethernet-интерфейс.

Новое в Chef Client 13.4

metric
Тип в Ruby: Строка

Метрика маршрутизации для интерфейса.

mtu
Тип в Ruby: Строка

Максимальный размер блока передачи (MTU) для сетевого интерфейса.

network
Тип в Ruby: Строка

Адрес сетевого интерфейса.

onboot
Тип в Ruby: Строка

Включить сетевой интерфейс при загрузке.

onparent
Тип в Ruby: Строка

Включить сетевой интерфейс при включении его родительского интерфейса.

slave
Тип в Ruby: Строка

При установке в yes, это устройство управляется интерфейсом объединения каналов, указанным через свойство master.

Новое в Chef Client 13.4

target
Тип в Ruby: Строка | Значение по умолчанию: The resource block's name

IP-адрес, который должен быть назначен сетевому интерфейсу. Если не указан, используется имя ресурса.

vlan
Тип в Ruby: Строка

VLAN для назначения интерфейса.

Новое в Chef Client 14.4


Общие функциональные возможности ресурсов


Ресурсы 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: Целое число | Значение по умолчанию: 0

Количество попыток перехвата исключений и повторного выполнения ресурса.

retry_delay

Тип в Ruby: Целое число | Значение по умолчанию: 2

Задержка в секундах между попытками повторного выполнения.

sensitive

Тип в Ruby: true, false | Значение по умолчанию: false

Обеспечить, чтобы чувствительные данные ресурса не регистрировались Chef Infra Client.

Уведомления

notifies

Тип в Ruby: Символ, 'Chef::Resource[Строка]'

Ресурс может уведомлять другой ресурс о действиях при изменении своего состояния. Укажите 'resource[name]', :action действие, которое должен выполнить этот ресурс, и затем :timer для этого действия. Ресурс может уведомлять несколько ресурсов; используйте оператор notifies для каждого ресурса, который должен быть уведомлен.

Если указанный ресурс не существует, возникает ошибка. В отличие от subscribes, если исходный ресурс не найден, это не приведет к ошибке.

Таймер определяет момент во время выполнения Chef Infra Client, когда выполняется уведомление. Доступны следующие таймеры:

:before

Указывает, что действие с уведомленным ресурсом должно быть выполнено до обработки блока ресурса, в котором находится уведомление.

:delayed

По умолчанию. Указывает, что уведомление должно быть помещено в очередь, а затем выполнено в конце выполнения Chef Infra Client.

:immediate, :immediately

Указывает, что уведомление должно быть выполнено немедленно, по каждому уведомленному ресурсу.

Синтаксис для notifies:

notifies :action, 'resource[name]', :timer
subscribes

Тип в Ruby: Символ, 'Chef::Resource[Строка]'

Ресурс может следить за другим ресурсом и выполнять действие, если состояние отслеживаемого ресурса изменится. Укажите '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.

Примеры


В следующих примерах демонстрируются различные подходы к использованию ресурса ifconfig в рецептах:

Настройка сетевого интерфейса со статическим IP-адресом

ifconfig '33.33.33.80' do
  device 'eth1'
end

создаст следующую конфигурацию интерфейса:

iface eth1 inet static
  address 33.33.33.80

Настройка интерфейса для использования DHCP

ifconfig 'Set eth1 to DHCP' do
  device 'eth1'
  bootproto 'dhcp'
end

создаст следующую конфигурацию интерфейса:

iface eth1 inet dhcp

Обновление статического IP-адреса с протоколом загрузки

ifconfig "33.33.33.80" do
  bootproto "dhcp"
  device "eth1"
end

обновит конфигурацию интерфейса со статического на dhcp:

iface eth1 inet dhcp
  address 33.33.33.80

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

Spec-Zone.ru

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