3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant Tips#4 puppetのmanifestファイルを階層的に読み込む

Posted at

##Vagrant Tipsのサマリページはこちら

puppetのmanifestファイルを階層的に読み込む

Vagrantを利用していると、shellによるプロビジョニングでは、いろいろと面倒な記述をしなければならなかったり、OSによっては書き方を変えないと動かなかったりして、不都合な場合もあります。そういった問題を緩和するために、puppetやchefなどの構成管理ツールを使うと便利です。
今回は、chefと比べると古くから利用されているpuppetについての記事です。
puppetでは、manifestと呼ばれる設定ファイルに、構成管理情報を記述します。(Vagrantでは、デフォルトの設定で、manifests/default.ppを読みに行くように設定されているようです。)

単純な構成であれば、default.ppに全て記述してしまえばよいのですが、複雑な構成をする場合、default.ppに全てを書いてしまうと、管理が大変になってしまうため、目的ごとにmanifestを管理したい場合の方法を紹介します。(目的毎にmanifestファイルを作成することで、再利用性も高まります。)

Vagrantfile
Vagrant::Config.run do |config|
  config.vm.box = "centos64_6_4"
  config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210.box"
  # provisioningにはpuppetを利用
  config.vm.provision "puppet"

end
manifests/default.pp
import 'parent_manifest.pp' # このように別ファイルを読み出すことが可能
notice("This is a default.pp")
manifests/parent_manifest.pp
import 'child_*.pp' # 正規表現による一括読込も可能
notice("This is a parent_manifest.pp")
manifests/child_manifest.pp
notice("This is a child_manifest.pp")
manifests/child_manifest2.pp
notice("This is a child_manifest2.pp")

上記ファイルを作成して、「vagrant up」を実行すると、
default.ppからparent_manifest.ppやchild_manifest.pp、child_manifest2.ppが呼び出されていることがわかります。
~中略~
==> default: Notice: Scope(Class[main]): This is a child_manifest.pp
==> default: Notice: Scope(Class[main]): This is a child_manifest2.pp
==> default: Notice: Scope(Class[main]): This is a parent_manifest.pp
==> default: Notice: Scope(Class[main]): This is a default.pp
==> default: Notice: Compiled catalog for localhost in environment production in 0.11 seconds
==> default: Notice: Finished catalog run in 0.04 seconds

上記manifestでは、何もしていませんが、それぞれapacheのインストールやtomcatのインストール、javaのインストールなどと分割してファイルを作成することで、柔軟にmanifestを作成することが可能です。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?