Spec-Zone.ru › Chef 16

Ресурс csh

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

Страница справки по ресурсам


Используйте ресурс csh для выполнения скриптов с использованием интерпретатора csh. Этот ресурс также может использовать любые действия и свойства, доступные для ресурса execute. Команды, выполняемые с помощью этого ресурса, по своей природе не являются идемпотентными, так как они обычно уникальны для среды, в которой они выполняются. Используйте not_if и only_if для защиты этого ресурса от идемпотентности.

Синтаксис


Блок ресурса csh выполняет скрипты с использованием csh:

csh 'hello world' do
  code <<-EOH
    echo "Hello world!"
    echo "Current directory: " $cwd
  EOH
end

где:

  • code указывает команду для выполнения

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

csh 'name' do
  code                       String
  creates                    String
  cwd                        String
  environment                Hash
  flags                      String
  group                      String, Integer
  path                       Array
  returns                    Integer, Array
  timeout                    Integer, Float
  user                       String, Integer
  umask                      String, Integer
  action                     Symbol # defaults to :run if not specified
end

где:

  • csh — это ресурс.
  • name — имя, присвоенное блоку ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для перевода узла в нужное состояние.
  • code, creates, cwd, environment, flags, group, path, returns, timeout, user, и umask — свойства этого ресурса, с указанным типом Ruby. Смотрите раздел «Свойства» ниже для получения дополнительной информации обо всех свойствах, которые могут быть использованы с этим ресурсом.

Действия


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

:nothing
Запретить выполнение команды. Это действие используется для указания, что команда выполняется только тогда, когда другой ресурс сообщает об этом.
:run
По умолчанию. Выполнить скрипт.

Свойства


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

code
Тип Ruby: Строка | REQUIRED

Цитированная строка кода, который будет выполнен.

creates
Тип Ruby: Строка

Запретить команде создание файла, если такой файл уже существует.

cwd
Тип Ruby: Строка

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

environment
Тип Ruby: Словарь

Словарь переменных окружения в формате ({"ENV_VARIABLE" => "VALUE"}). (Эти переменные должны существовать для успешного выполнения команды.)

flags
Тип Ruby: Строка

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

group
Тип Ruby: Строка, Целое число

Имя или идентификатор группы, которые необходимо изменить перед выполнением команды.

returns
Тип Ruby: Целое число, Массив | Значение по умолчанию: 0

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

timeout
Тип Ruby: Целое число, Вещественное число | Значение по умолчанию: 3600

Время ожидания (в секундах) команды перед истечением срока ожидания.

user
Тип Ruby: Строка, Целое число

Имя пользователя или идентификатор пользователя, который должен быть изменён перед выполнением команды.

umask
Тип Ruby: Строка, Целое число

Маска создания режима файла или umask.


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


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


Этот ресурс не содержит примеров.

Ресурс csh
  • Синтаксис
  • Действия
  • Свойства
  • Общие функциональные возможности ресурсов
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

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

Spec-Zone.ru

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