SSブログ

Roleを使ってみる [Chef]

DBとWebという役割の違うサーバを構築するために、まずは先にPostgreSQLをインストールした環境をRoleを使った記述に変更します。

nodesディレクトリに用意したJOSNファイルは、ほぼそのままです。run_listの部分が、Roleの指定になっています。

【chef-repo\nodes\hoge201.json】
// hoge201.json { "postgresql": { "version" : "9.3", "enable_pgdg_yum" : "true", "pgdg" : { "repo_rpm_url" : { "9.3" : { "centos" : { "6" : { "i386" : "http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm", "x86_64" : "http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm" } } } } }, "client" : { "packages" : ["postgresql93","postgresql93-devel" ] }, "server" : { "packages" : ["postgresql93-server" ], "service_name" : "postgresql-9.3" }, "contrib" : { "packages" : ["postgresql93-contrib"] }, "dir" : "/var/lib/pgsql/9.3/data", "password": { "postgres": "e8a48653851e28c69d0506508fb27fc5" }, "config" : { "listen_addresses" : "*" }, "pg_hba" : [ {"type":"local", "db":"all", "user":"postgres", "addr":"", "method":"ident" }, {"type":"local", "db":"all", "user":"all", "addr":"", "method":"ident" }, {"type":"host", "db":"all", "user":"all", "addr":"127.0.0.1/32", "method":"md5" }, {"type":"host", "db":"all", "user":"all", "addr":"::1/128", "method":"md5" }, {"type":"host", "db":"all", "user":"all", "addr":"192.168.56.0/24", "method":"md5" } ] }, "run_list" : [ "role[dbserver]" ] }
Roleの記述は、chef-repoリポジトリのrolesディレクトリにJSONファイルで記述します。ここでは、dbserver.jsonとしてファイルを記述します。これは、先のnodesのJOSNファイルのrun_listで指定したRoleの詳細を記載したものということになります。
これまで、NodeのJSONファイルに記載していたrun_listの指定をここに移動しています。

【roles\dbserver.json】
// dbserver.json { "name": "dbserver", "default_attributes": {}, "override_attributes": {}, "json_class": "Chef::Role", "descripution": "", "chef_type": "role", "run_list": [ "recipe[postgresql]", "recipe[postgresql::server]", "recipe[postgresql::contrib]" ] }
※nodesのJSONファイルに記述してあるpostgresql用の属性は、override_attributes以下にもそのまま記述可能であるが、ここでは元のままの記述で話を進めるものである。

この状態で、先にpostgresqlのcookbookを実行したGuestOSの状態を、saharaを使ってrollbackしてから、Cookします。(あらかじめ、sandboxをonにしておく必要があるので注意)
C:\Users\hoge\chef-repo> vagrant sandbox rollback
変更したChef-repoリポジトリをCookする。
C:\Users\hoge\chef-repo> knife solo cook vagrant@hoge201
以上で、chef-soloコマンドがGuestOS上に展開されて実行され、PostgreSQL 9.3がインストールされて、DBが構築されます。


共通テーマ:blog
PostgreSQL 9.3をknife..Webサーバを作る ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。