Spec-Zone.ru › Chef 16

Ресурс mount

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

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


Используйте ресурс mount для управления смонтированной файловой системой.

Синтаксис


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

mount 'name' do
  device           String
  device_type      String, Symbol # default value: :device
  domain           String
  dump             Integer, false # default value: 0
  enabled          true, false # default value: false
  fsck_device      String # default value: "-"
  fstype           String # default value: "auto"
  mount_point      String # default value: 'name' unless specified
  options          Array, String # default value: ["defaults"]
  pass             Integer, false # default value: 2
  password         String
  supports         Array, Hash
  username         String
  action           Symbol # defaults to :mount if not specified
end

где:

  • mount — это ресурс.
  • name — это имя, заданное для блока ресурса.
  • action определяет, какие шаги Chef Infra Client предпримет, чтобы привести узел в желаемое состояние.
  • device, device_type, domain, dump, enabled, fsck_device, fstype, mount_point, options, pass, password, supports, и username — это свойства, доступные для этого ресурса.

Действия


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

:disable
Удаление записи из таблицы файловых систем (fstab).
:enable
Добавление записи в таблицу файловых систем (fstab).
:mount
По умолчанию. Мониторинг устройства.
:nothing
Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:remount
Повторная установка устройства.
:umount
Отключение устройства.
:unmount
Псевдоним для действия :umount.

Свойства


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

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

Необходимо для действий :umount и :remount (для проверки вывода команды mount на наличие). Специальное блочное устройство или удаленный узел, метка или uuid для монтирования.

device_type
Тип Ruby: Строка, Символ | Значение по умолчанию: :deviceДопустимые значения: :device, :label, :uuid

Тип устройства: :device, :label или :uuid

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

Только Windows: Используется для указания домена, в котором находятся username и password.

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

Частота дампов (в днях), используемая при создании записи в таблице файловых систем (fstab).

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

Используется для указания, включена ли смонтированная файловая система.

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

Только Solaris: Устройство fsck.

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

Тип файловой системы (fstype) устройства.

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

Директория (или путь), в которой должно быть смонтировано устройство. По умолчанию — имя блока ресурса, если не указано иное.

options
Тип Ruby: Массив, Строка | Значение по умолчанию: ["defaults"]

Массив или список опций для монтирования, разделенные запятыми.

pass
Тип Ruby: Целое число, false | Значение по умолчанию: 2

Номер прохода, используемый командой проверки файловой системы (fsck) при создании записи в таблице файловых систем (fstab).

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

Только Windows: Используется для указания пароля для имени пользователя.

supports
Тип Ruby: Массив, Хэш

Указывает хэш поддерживаемых функций монтирования. Значение по умолчанию: remount: false (предпочтительный). Массив по умолчанию: remount: true (не рекомендуется).

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

Только Windows: Используется для указания имени пользователя.


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


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

Примеры


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

Монтирование меткированной файловой системы

mount '/mnt/volume1' do
  device 'volume1'
  device_type :label
  fstype 'xfs'
  options 'rw'
end

Монтирование локального блочного диска

mount '/mnt/local' do
  device '/dev/sdb1'
  fstype 'ext3'
end

Монтирование файловой системы без блоков

mount '/mount/tmp' do
  pass     0
  fstype   'tmpfs'
  device   '/dev/null'
  options  'nr_inodes=999k,mode=755,size=500m'
  action   [:mount, :enable]
end

Монтирование и добавление в таблицу файловых систем

mount '/export/www' do
  device 'nas1prod:/export/web_sites'
  fstype 'nfs'
  options 'rw'
  action [:mount, :enable]
end

Монтирование удалённой файловой системы

mount '/export/www' do
  device 'nas1prod:/export/web_sites'
  fstype 'nfs'
  options 'rw'
end

Монтирование удаленной папки в Microsoft Windows

mount 'T:' do
  action :mount
  device '\\\\hostname.example.com\\folder'
end

Отключение удалённой папки в Microsoft Windows

mount 'T:' do
  action :umount
  device '\\\\hostname.example.com\\D$'
end

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

Следующий пример показывает, как использовать ресурсы execute, service и mount вместе, чтобы убедиться, что у узла, работающего на Amazon EC2, работает MySQL. Этот пример выполняет следующие действия:

  • Проверяет, есть ли у узла Amazon EC2 MySQL
  • Если у узла есть MySQL, останавливает MySQL
  • Устанавливает MySQL
  • Монтирует узел
  • Перезапускает MySQL
# the following code sample comes from the ``server_ec2``
# recipe in the following cookbook:
# https://github.com/chef-cookbooks/mysql

if (node.attribute?('ec2') && ! FileTest.directory?(node['mysql']['ec2_path']))

  service 'mysql' do
    action :stop
  end

  execute 'install-mysql' do
    command "mv #{node['mysql']['data_dir']}#{node['mysql']['ec2_path']}"
    not_if do FileTest.directory?(node['mysql']['ec2_path']) end
  end

  [node['mysql']['ec2_path'], node['mysql']['data_dir']].each do |dir|
    directory dir do
      owner 'mysql'
      group 'mysql'
    end
  end

  mount node['mysql']['data_dir'] do
    device node['mysql']['ec2_path']
    fstype 'none'
    options 'bind,rw'
    action [:mount, :enable]
  end

  service 'mysql' do
    action :start
  end

end

где

  • два ресурса service используются для остановки и последующего перезапуска службы MySQL
  • ресурс execute используется для установки MySQL
  • ресурс mount используется для монтажа узла и включения MySQL
Ресурс mount
  • Синтаксис
  • Действия
  • Свойства
  • Общие функции ресурсов
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

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

Spec-Zone.ru

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