Назад | Перейти на главную страницу

Как использовать LWRP в AWS OpsWorks?

Охай,

Есть ли способ использовать LWRP for Chef в AWS OpsWorks? Как еще я бы это сделал:

nfs_export "/exports" do
  network '10.0.0.0/8'
  writeable false 
  sync true
  options ['no_root_squash']
end

Это поваренная книга:

https://github.com/atomic-penguin/cookbook-nfs

Я бы хотел добавить экспорт, но мне это не нравится. Кроме того, я хотел бы создать запись rc.local для монтирования экспорта на узлы - с chef было бы идеально для лучшего развертывания.

Вы можете сделать это точно так же, как если бы вы имели дело с обычной реализацией Chef. Если вы создаете кулинарную книгу оболочки и добавляете зависимость от кулинарной книги NFS в файл metadata.rb своей кулинарной книги, nfs_export Ресурс будет доступен для использования в рецепте вашей поваренной книги по умолчанию.

Чтобы добавить пользовательские рецепты из репозитория Git в стек OpsWorks, вам необходимо настроить стек для извлечения кулинарных книг: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-installingcustom-enable.html

Так, например, вы создаете репозиторий git со следующей структурой:

cookbooks -> freshmelon-nfs --> metadata.rb |-> recipes -> default.rb

Итак, это папка кулинарных книг в вашем репозитории, куда вы добавляете папку для каждой пользовательской кулинарной книги. Макет кулинарной книги - это metadata.rb в вашей пользовательской кулинарной книге (freshmelon-nfs в данном примере), которая описывает кулинарную книгу, и в папке рецептов, которая содержит один рубиновый файл для каждого рецепта, значение по умолчанию называется default.rb.

В качестве примера metadata.rb

name 'afreshmelon-nfs' maintainer 'Your Name' maintainer_email 'your@email' license 'MIT' description 'NFS Wrapper' long_description 'Configures NFS for aFreshMelon' version '0.1' depends 'nfs'

Пример default.rb

nfs_export "/exports" do network '10.0.0.0/8' writeable false sync true options ['no_root_squash'] end

Затем вы можете вызвать события afreshmelon-nfs :: default в своем жизненном цикле (установка, настройка, установка) в конфигурации уровня вашего стека OpsWorks.

Вы также можете затем создать client.rb в папке рецептов, которую вы можете включить в конфигурацию слоя для своих клиентов, чтобы смонтировать экспорт.

mount "/mnt/nfs" do device "yourserver:/exports" fstype "nfs" options "rw" action [:mount, :enable] end

Это добавит монтирование NFS к вашему fstab, и оно будет смонтировано при загрузке вместе с другими файловыми системами.