web-dev-qa-db-ja.com

AWS OpsWorksでLWRPを使用するにはどうすればよいですか?

オハイ、

aWS OpsWorksでChefにLWRPを使用する方法はありますか?他にどのようにこれを実行しますか:

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を使用すると、デプロイを改善するのに理想的です。

1
aFreshMelon

これは、通常のChef実装を扱っている場合とまったく同じように実行できます。ラッパークックブックを作成し、クックブックのmetadata.rbにNFSクックブックへの依存関係を追加すると、ラッパークックブックのデフォルトレシピでnfs_exportリソースを使用できるようになります。

GitリポジトリからOpsWorksスタックにカスタムレシピを追加するには、クックブックをプルするようにスタックを構成する必要があります: http://docs.aws.Amazon.com/opsworks/latest/userguide/workingcookbook-インストールcustom-enable.html

したがって、たとえば、次の構造でgitリポジトリを作成します。

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

これがリポジトリ内のクックブックフォルダであり、カスタムクックブックごとにフォルダを追加します。クックブックの必要最低限​​のレイアウトは、クックブックを説明するカスタムクックブック(この例ではfreshmelon-nfs)のmetadata.rbと、1つのRubyファイルを含むレシピフォルダーです。レシピごとに、デフォルトは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

次に、OpsWorksスタックのレイヤー構成のライフサイクル(セットアップ、構成、インストール)イベントでafreshmelon-nfs :: defaultを呼び出すことができます。

次に、レシピフォルダーにclient.rbを作成します。これは、クライアントのレイヤー構成に含めることができ、エクスポートをマウントできます。

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

これにより、NFSマウントがfstabに追加され、他のファイルシステムと一緒に起動時にマウントされます。

2
James Hebden