Você pode fazer isso exatamente como faria se estivesse lidando com uma implementação normal do Chef. Se você criar um livro de receitas wrapper e adicionar uma dependência no livro de receitas NFS nos metadados.rb do seu livro de receitas, o recurso nfs_export
estará disponível para uso na receita padrão do livro de receitas do wrapper.
Para adicionar receitas personalizadas de um repositório Git a uma pilha de OpsWorks, você precisa configurar a pilha para colocar os livros de receitas em: link
Então, por exemplo, você cria um repositório git com a seguinte estrutura:
cookbooks -> freshmelon-nfs --> metadata.rb
|-> recipes -> default.rb
Então, essa é uma pasta de livros de receitas no seu repositório, onde você adiciona uma pasta para cada livro de receitas personalizado. O layout básico para um livro de receitas é um metadata.rb
em seu livro de receitas personalizado (freshmelon-nfs neste exemplo) que descreve o livro de receitas e uma pasta de receitas, que contém um arquivo rubi para cada receita, o padrão é chamado default.rb .
Como exemplo, 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'
Um exemplo default.rb
nfs_export "/exports" do
network '10.0.0.0/8'
writeable false
sync true
options ['no_root_squash']
end
Em seguida, você pode chamar afreshmelon-nfs :: default em seus eventos de ciclo de vida (Setup, Configure, Install) na configuração Layer de sua pilha de OpsWorks.
Você também pode criar um client.rb
na sua pasta de receitas, que você pode incluir na configuração de layers para seus clientes, para montar a exportação.
mount "/mnt/nfs" do
device "yourserver:/exports"
fstype "nfs"
options "rw"
action [:mount, :enable]
end
Isso adicionará a montagem do NFS ao seu fstab, e ela será montada na inicialização junto com outros sistemas de arquivos.