Ресурс openssl_rsa_public_key
Эта страница сгенерирована из исходного кода Chef Chef source code. Чтобы предложить изменение, отредактируйте файл openssl_rsa_public_key.rb и отправьте запрос на включение изменений в репозиторий Chef.
Используйте ресурс openssl_rsa_public_key для создания файлов общедоступных ключей RSA для данного закрытого ключа RSA.
Новинка в Chef Infra Client 14.0.
Синтаксис
Полный синтаксис всех свойств, доступных для ресурса openssl_rsa_public_key:
openssl_rsa_public_key 'name' do
group String, Integer
mode Integer, String # default value: "0640"
owner String, Integer
path String # default value: 'name' unless specified
private_key_content String
private_key_pass String
private_key_path String
action Symbol # defaults to :create if not specified
endгде:
-
openssl_rsa_public_key— это ресурс. -
name— имя блока ресурса. -
actionопределяет действия, которые Chef Infra Client предпримет для приведения узла в желаемое состояние. -
group,mode,owner,path,private_key_content,private_key_pass, иprivate_key_path— доступные свойства этого ресурса.
Действия
Ресурс openssl_rsa_public_key имеет следующие действия:
:create- По умолчанию. Создает общедоступный ключ RSA.
:nothing- Этот блок ресурса не выполняет никаких действий, пока не получит уведомление от другого ресурса о необходимости принять действие. После получения уведомления этот блок ресурса либо выполняется сразу, либо добавляется в очередь для выполнения в конце выполнения Chef Infra Client.
Свойства
Ресурс openssl_rsa_public_key имеет следующие свойства:
group-
Тип в Ruby: Строка, Целое число
Владение группой, применённое ко всем файлам, созданным ресурсом.
mode-
Тип в Ruby: Целое число, Строка | Значение по умолчанию:
0640Режим разрешений, применённый ко всем файлам, созданным ресурсом.
owner-
Тип в Ruby: Строка, Целое число
Владелец, применённый ко всем файлам, созданным ресурсом.
path-
Тип в Ruby: Строка | Значение по умолчанию:
The resource block's nameНеобязательное свойство для указания пути к общедоступному ключу, если он отличается от имени блока ресурса.
private_key_content-
Тип в Ruby: Строка
Содержание закрытого ключа, включая новые строки. Это свойство используется вместо private_key_path в случаях, когда вы хотите избежать предварительного записи закрытого ключа на диск.
private_key_pass-
Тип в Ruby: Строка
Пароль предоставленного закрытого ключа.
private_key_path-
Тип в Ruby: Строка
Путь к файлу закрытого ключа.
Общие функциональные возможности ресурсов
Ресурсы 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[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
Защитные свойства
Свойство guard может использоваться для оценки состояния узла во время фазы выполнения Chef Infra Client. Основываясь на результатах этой оценки, свойство guard используется для указания Chef Infra Client, следует ли ему продолжать выполнение ресурса. Свойство guard принимает либо строковое значение, либо значение Ruby-блока:
- Строка выполняется как командная строка. Если команда возвращает
0, свойство guard применяется. Если команда возвращает любое другое значение, то свойство guard не применяется. Строковые guard в powershell_script выполняют команды Windows PowerShell и могут возвращатьtrueв дополнение к0. - Блок выполняется как код Ruby, который должен вернуть либо
trueилиfalse. Если блок возвращаетtrue, свойство guard применяется. Если блок возвращаетfalse, свойство guard не применяется.
Свойство guard полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверить желаемое состояние по мере его выполнения, а затем, если желаемое состояние присутствует, чтобы Chef Infra Client ничего не делал.
СвойстваСледующие свойства могут быть использованы для определения свойства guard, которое оценивается во время фазы выполнения Chef Infra Client:
not_ifЗапретить выполнение ресурса, когда условие возвращает
true.only_ifРазрешить выполнение ресурса только в том случае, если условие возвращает
true.
Примеры
Следующие примеры демонстрируют различные подходы к использованию ресурса openssl_rsa_public_key в рецептах:
Генерация нового общедоступного ключа из закрытого ключа на диске
openssl_rsa_public_key '/etc/ssl_files/rsakey_des3.pub' do
private_key_path '/etc/ssl_files/rsakey_des3.pem'
private_key_pass 'something'
action :create
end
Генерация нового общедоступного ключа путём передачи закрытого ключа
openssl_rsa_public_key '/etc/ssl_files/rsakey_2.pub' do
private_key_pass 'something'
private_key_content "-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,5EE0AE9A5FE3342E
yb930kj5/4/nd738dPx6XdbDrMCvqkldaz0rHNw8xsWvwARrl/QSPwROG3WY7ROl
EUttVlLaeVaqRPfQbmTUfzGI8kTMmDWKjw52gJUx2YJTYRgMHAB0dzYIRjeZAaeS
ypXnEfouVav+jKTmmehr1WuVKbzRhQDBSalzeUwsPi2+fb3Bfuo1dRW6xt8yFuc4
Akv1hCglymPzPHE2L0nSGjcgA2DZu+/S8/wZ4E63442NHPzO4VlLvpNvJrYpEWq9
B5mJzcdXPeOTjqd13olNTlOZMaKxu9QShu50GreCTVsl8VRkK8NtwbWuPGBZlIFa
jzlS/RaLuzNzfajaKMkcIYco9t7gN2DwnsACHKqEYT8248Ii3NQ+9/M5YcmpywQj
WGr0UFCSAdCky1lRjwT+zGQKohr+dVR1GaLem+rSZH94df4YBxDYw4rjsKoEhvXB
v2Vlx+G7Vl2NFiZzxUKh3MvQLr/NDElpG1pYWDiE0DIG13UqEG++cS870mcEyfFh
SF2SXYHLWyAhDK0viRDChJyFMduC4E7a2P9DJhL3ZvM0KZ1SLMwROc1XuZ704GwO
YUqtCX5OOIsTti1Z74jQm9uWFikhgWByhVtu6sYL1YTqtiPJDMFhA560zp/k/qLO
FKiM4eUWV8AI8AVwT6A4o45N2Ru8S48NQyvh/ADFNrgJbVSeDoYE23+DYKpzbaW9
00BD/EmUQqaQMc670vmI+CIdcdE7L1zqD6MZN7wtPaRIjx4FJBGsFoeDShr+LoTD
rwbadwrbc2Rf4DWlvFwLJ4pvNvdtY3wtBu79UCOol0+t8DVVSPVASsh+tp8XncDE
KRljj88WwBjX7/YlRWvQpe5y2UrsHI0pNy8TA1Xkf6GPr6aS2TvQD5gOrAVReSse
/kktCzZQotjmY1odvo90Zi6A9NCzkI4ZLgAuhiKDPhxZg61IeLppnfFw0v3H4331
V9SMYgr1Ftov0++x7q9hFPIHwZp6NHHOhdHNI80XkHqtY/hEvsh7MhFMYCgSY1pa
K/gMcZ/5Wdg9LwOK6nYRmtPtg6fuqj+jB3Rue5/p9dt4kfom4etCSeJPdvP1Mx2I
eNmyQ/7JN9N87FsfZsIj5OK9OB0fPdj0N0m1mlHM/mFt5UM5x39u13QkCt7skEF+
yOptXcL629/xwm8eg4EXnKFk330WcYSw+sYmAQ9ZTsBxpCMkz0K4PBTPWWXx63XS
c4J0r88kbCkMCNv41of8ceeGzFrC74dG7i3IUqZzMzRP8cFeps8auhweUHD2hULs
XwwtII0YQ6/Fw4hgGQ5//0ASdvAicvH0l1jOQScHzXC2QWNg3GttueB/kmhMeGGm
sHOJ1rXQ4oEckFvBHOvzjP3kuRHSWFYDx35RjWLAwLCG9odQUApHjLBgFNg9yOR0
jW9a2SGxRvBAfdjTa9ZBBrbjlaF57hq7mXws90P88RpAL+xxCAZUElqeW2Rb2rQ6
Cbz4/AtPekV1CYVodGkPutOsew2zjNqlNH+M8XzfonA60UAH20TEqAgLKwgfgr+a
c+rXp1AupBxat4EHYJiwXBB9XcVwyp5Z+/dXsYmLXzoMOnp8OFyQ9H8R7y9Y0PEu
-----END RSA PRIVATE KEY-----
"
action :create
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_rsa_public_key/