Ресурс ifconfig
Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменение, отредактируйте файл ifconfig.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс 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 nameIP-адрес, который должен быть назначен сетевому интерфейсу. Если не указан, используется имя ресурса.
-
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/