Spec-Zone.ru › Chef 16

Ресурс ssh_known_hosts_entry

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

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


Используйте ресурс ssh_known_hosts_entry для добавления записи для указанного хоста в /etc/ssh/ssh_known_hosts или в файл известных хостов пользователя, если он указан.

Новое в Chef Infra Client 14.3.

Синтаксис


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

ssh_known_hosts_entry 'name' do
  file_location      String # default value: "/etc/ssh/ssh_known_hosts"
  group              String, Integer
  hash_entries       true, false # default value: false
  host               String # default value: 'name' unless specified
  key                String
  key_type           String # default value: "rsa"
  mode               String # default value: "0644"
  owner              String, Integer # default value: "root"
  port               Integer # default value: 22
  timeout            Integer # default value: 30
  action             Symbol # defaults to :create if not specified
end

где:

  • ssh_known_hosts_entry — это ресурс.
  • name — имя, заданное для блока ресурса.
  • action определяет действия, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.
  • file_location, group, hash_entries, host, key, key_type, mode, owner, port и timeout — доступные свойства этого ресурса.

Действия


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

:create
По умолчанию. Создаёт запись в файле ssh_known_hosts.
:flush
Немедленно записывает записи в конфигурационный файл. Без этого фактическая запись файла откладывается в ходе выполнения Chef, чтобы все записи могли быть накоплены перед записью файла.
:nothing
Этот блок ресурса не действует, пока не получит уведомление от другого ресурса о необходимости выполнить действие. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


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

file_location
Тип в Ruby: Строка | Значение по умолчанию: /etc/ssh/ssh_known_hosts

Расположение файла ssh известных хостов. Измените это, чтобы установить файл известных хостов для конкретного пользователя.

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

Группа файлов для файла ssh_known_hosts.

hash_entries
Тип в Ruby: true, false | Значение по умолчанию: false

Хэшировать имя хоста и адреса в файле ssh_known_hosts для повышения конфиденциальности.

host
Тип в Ruby: Строка | Значение по умолчанию: The resource block's name

Хост, который нужно добавить в файл известных хостов.

key
Тип в Ruby: Строка

Необязательный ключ для хоста. Если не указан, он будет определён автоматически.

key_type
Тип в Ruby: Строка | Значение по умолчанию: rsa

Тип ключа для хранения.

mode
Тип в Ruby: Строка | Значение по умолчанию: "0644"

Режим файла для файла ssh_known_hosts.

owner
Тип в Ruby: Строка, Целое число | Значение по умолчанию: root

Владелец файла ssh_known_hosts.

port
Тип в Ruby: Целое число | Значение по умолчанию: 22

Порт сервера, который команда ssh-keyscan будет использовать для получения открытого ключа.

timeout
Тип в Ruby: Целое число | Значение по умолчанию: 30

Таймаут в секундах для ssh-keyscan.


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


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

Защитные механизмы

Свойство защитного механизма может использоваться для оценки состояния узла во время фазы выполнения 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.

Примеры


Следующие примеры демонстрируют различные подходы к использованию ресурса ssh_known_hosts_entry в рецептах:

Добавление одной записи для github.com с автоматически определяемым ключом

ssh_known_hosts_entry 'github.com'

Добавление одной записи с предоставленным вами ключом

ssh_known_hosts_entry 'github.com' do
  key 'node.example.com ssh-rsa ...'
end
Ресурс ssh_known_hosts_entry
  • Синтаксис
  • Действия
  • Свойства
  • Общие возможности ресурсов
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

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

Spec-Zone.ru

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