Ресурс windows_share
Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменения, отредактируйте файл windows_share.rb и отправьте заявку на объединение в репозиторий клиента Chef Infra.
Используйте ресурс windows_share для создания, изменения и удаления общих папок Windows.
Новое в Chef Infra Client 14.7.
Синтаксис
Полный синтаксис всех свойств, доступных для ресурса windows_share:
windows_share 'name' do
ca_timeout Integer # default value: 0
change_users Array # default value: []
concurrent_user_limit Integer # default value: 0
continuously_available true, false # default value: false
description String
encrypt_data true, false # default value: false
full_users Array # default value: []
path String
read_users Array # default value: []
scope_name String # default value: "*"
share_name String # default value: 'name' unless specified
temporary true, false # default value: false
action Symbol # defaults to :create if not specified
endгде:
-
windows_share— это ресурс. -
name— имя блока ресурса. -
actionопределяет действия, которые клиент Chef Infra предпримет для приведения узла в желаемое состояние. -
ca_timeout,change_users,concurrent_user_limit,continuously_available,description,encrypt_data,full_users,path,read_users,scope_name,share_name, иtemporary— доступные свойства для этого ресурса.
Действия
Ресурс windows_share имеет следующие действия:
:create- Создать или изменить общую папку Windows. (по умолчанию)
:delete- Удалить существующую общую папку Windows.
:nothing- Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
Свойства
Ресурс windows_share имеет следующие свойства:
-
ca_timeout - Тип Ruby: Целое число | Значение по умолчанию:
0Время ожидания непрерывной доступности для общего доступа.
-
change_users - Тип Ruby: Массив | Значение по умолчанию:
[]Пользователи, которые должны иметь разрешение «изменение» для общего доступа в формате домен\имя_пользователя.
-
concurrent_user_limit - Тип Ruby: Целое число | Значение по умолчанию:
0Максимальное количество одновременно подключенных пользователей, которых может вместить общий доступ.
-
continuously_available - Тип Ruby: true, false | Значение по умолчанию:
falseУказывает, что общий доступ постоянно доступен.
-
description - Тип Ruby: Строка
Описание, применяемое к общему доступу.
-
encrypt_data - Тип Ruby: true, false | Значение по умолчанию:
falseУказывает, что общий доступ зашифрован.
-
full_users - Тип Ruby: Массив | Значение по умолчанию:
[]Пользователи, которые должны иметь разрешение «Полный контроль» для общего доступа в формате домен\имя_пользователя.
-
path - Тип Ruby: Строка
Путь к папке для общего доступа. Требуется при создании. Если общий доступ уже существует по другому пути, он удаляется и создается заново.
-
read_users - Тип Ruby: Массив | Значение по умолчанию:
[]Пользователи, которые должны иметь разрешение «чтение» для общего доступа в формате домен\имя_пользователя.
-
scope_name - Тип Ruby: Строка | Значение по умолчанию:
*Имя области общих ресурсов.
-
share_name - Тип Ruby: Строка | Значение по умолчанию:
The resource block's nameНеобязательное свойство для задания имени общего доступа, если оно отличается от имени блока ресурса.
-
temporary - Тип Ruby: true, false | Значение по умолчанию:
falseСрок действия нового общего доступа SMB. Временный общий доступ не сохраняется после следующей перезагрузки компьютера.
Общие функциональные возможности ресурсов
Ресурсы Chef включают общие свойства, уведомления и средства защиты ресурсов.
Общие свойства
Следующие свойства являются общими для всех ресурсов:
compile_time-
Тип Ruby: true, false | Значение по умолчанию:
falseУправляет фазой, в которой ресурс выполняется на узле. Установите в значение true, чтобы запустить ресурс во время построения коллекции ресурсов (фаза
compile phase). Установите в значение false, чтобы запустить ресурс во время настройки узла клиентом Chef Infra (фазаconverge phase). ignore_failure-
Тип Ruby: true, false, :quiet | Значение по умолчанию:
falseПродолжить выполнение рецепта, если ресурс завершится неудачей по любой причине.
:quietне будет отображать полный стек вызовов, и рецепт продолжит выполнение, если ресурс завершится неудачей. retries-
Тип Ruby: Целое число | Значение по умолчанию:
0Количество попыток перехватить исключения и повторить ресурс.
retry_delay-
Тип Ruby: Целое число | Значение по умолчанию:
2Задержка в секундах между попытками повтора.
sensitive-
Тип Ruby: true, false | Значение по умолчанию:
falseОбеспечьте, чтобы конфиденциальные данные ресурсов не регистрировались клиентом Chef Infra.
Уведомления
-
notifies -
Тип Ruby: Символ, '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: Символ, '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_share в рецептах:
Создать общую папку:
windows_share 'foo' do
action :create
path 'C:\foo'
full_users ['DOMAIN_A\some_user', 'DOMAIN_B\some_other_user']
read_users ['DOMAIN_C\Domain users']
end
Удалить общую папку:
windows_share 'foo' do
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_share/