Ресурс openssl_x509_request
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл openssl_x509_request.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс openssl_x509_request для генерации запросов на сертификаты x509 в формате PEM. Если не указан существующий ключ, ресурс автоматически сгенерирует безпарольный ключ с сертификатом.
Новое в Chef Infra Client 14.4.
Синтаксис
Полный синтаксис всех свойств, доступных для ресурса openssl_x509_request:
openssl_x509_request 'name' do
city String
common_name String
country String
email String
group String, Integer
key_curve String # default value: "prime256v1"
key_file String
key_length Integer # default value: 2048
key_pass String
key_type String # default value: "ec"
mode Integer, String
org String
org_unit String
owner String, Integer
path String # default value: 'name' unless specified
state String
action Symbol # defaults to :create if not specified
endгде:
-
openssl_x509_request— это ресурс. -
name— имя блока ресурса. -
actionопределяет, какие действия Chef Infra Client предпримет, чтобы привести узел в нужное состояние. -
city,common_name,country,email,group,key_curve,key_file,key_length,key_pass,key_type,mode,org,org_unit,owner,path, иstate— доступные свойства для этого ресурса.
Действия
Ресурс openssl_x509_request имеет следующие действия:
:create- Генерирует файл запроса сертификата. (по умолчанию)
:nothing- Этот блок ресурса не действует, пока не будет уведомлен другим ресурсом о действиях. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
Свойства
Ресурс openssl_x509_request имеет следующие свойства:
-
city - Тип Ruby: Строка
Значение для поля сертификата
L.
-
common_name - Тип Ruby: Строка |
REQUIREDЗначение для поля сертификата
CN.
-
country - Тип Ruby: Строка
Значение для поля сертификата
C.
-
email - Тип Ruby: Строка
Значение для поля сертификата
email.
-
group - Тип Ruby: Строка, Целое число
Владение группой, применяемое ко всем файлам, созданным ресурсом.
-
key_curve - Тип Ruby: Строка | Значение по умолчанию:
prime256v1Допустимые значения:"prime256v1", "secp384r1", "secp521r1"Желаемая кривая генерируемого ключа (если key_type равен
ec). Запуститеopenssl ecparam -list_curves, чтобы увидеть доступные параметры.
-
key_file - Тип Ruby: Строка
Путь к файлу ключа сертификата в файловой системе. Если указано свойство
key_file, ресурс попытается получить ключ из этого местоположения. Если файл ключа не найден, ресурс сгенерирует новый файл ключа по этому пути. Если свойствоkey_fileне указано, ресурс сгенерирует файл ключа в той же директории, что и сгенерированный сертификат, с тем же именем, что и сгенерированный сертификат.
-
key_length - Тип Ruby: Целое число | Значение по умолчанию:
2048Допустимые значения:1024, 2048, 4096, 8192Желаемая длина в битах сгенерированного ключа (если key_type равен
rsa).
-
key_pass - Тип Ruby: Строка
Пароль для существующего пароля ключа.
-
key_type - Тип Ruby: Строка | Значение по умолчанию:
ecДопустимые значения:"ec", "rsa"Желаемый тип генерируемого ключа.
-
mode - Тип Ruby: Целое число, Строка
Режим разрешений, применяемый ко всем файлам, созданным ресурсом.
-
org - Тип Ruby: Строка
Значение для поля сертификата
O.
-
org_unit - Тип Ruby: Строка
Значение для поля сертификата
OU.
-
owner - Тип Ruby: Строка, Целое число
Владелец, применяемый ко всем файлам, созданным ресурсом.
-
path - Тип Ruby: Строка | Значение по умолчанию:
The resource block's nameНеобязательное свойство для указания пути для записи файла, если он отличается от имени блока ресурса.
-
state - Тип Ruby: Строка
Значение для поля сертификата
ST.
Общие функции ресурса
Ресурсы 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[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.
Примеры
Следующие примеры демонстрируют различные подходы к использованию ресурса openssl_x509_request в рецептах:
Генерация нового ключа EC и файла CSR
openssl_x509_request '/etc/ssl_files/my_ec_request.csr' do
common_name 'myecrequest.example.com'
org 'Test Kitchen Example'
org_unit 'Kitchens'
country 'UK'
end
Генерация нового файла CSR из существующего ключа EC
openssl_x509_request '/etc/ssl_files/my_ec_request2.csr' do
common_name 'myecrequest2.example.com'
org 'Test Kitchen Example'
org_unit 'Kitchens'
country 'UK'
key_file '/etc/ssl_files/my_ec_request.key'
end
Генерация нового ключа RSA и файла CSR
openssl_x509_request '/etc/ssl_files/my_rsa_request.csr' do
common_name 'myrsarequest.example.com'
org 'Test Kitchen Example'
org_unit 'Kitchens'
country 'UK'
key_type 'rsa'
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/openssl_x509_request/