SSブログ

pgstudioをセットアップする [Chef]

pgstudioをインストールする

pgstudioをセットアップするためのCookbookを作成します。
C:\Users\hoge\chef-repo> knife cookbook create pgstudio -o site-cookbooks
pgstudioのレシピを作成します。

【chef-repo\site-cookbooks\pgstudio\recipes\deault.rb】
# # Cookbook Name:: pgstudio # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # script "install_pgstudio" do interpreter "bash" user "root" code <<-EOH wget -O /tmp/pgstudio.tar.gz http://www.postgresqlstudio.org/?ddownload=838 tar xzf /tmp/pgstudio.tar.gz -C /usr/local/tomcat/default/webapps chown tomcat7 /usr/local/tomcat/default/webapps/pgstudio.war EOH end service "tomcat7" do supports :status => true, :restart => true action [ :enable, :restart ] end
Apache2のCookbookのテンプレートであるhttp-proxy.conf.erbを修正します。

【chef-repo\site-cookbooks\apache2\tempolates\default\ http-proxy.conf.erb】
ProxyPass ajp://localhost:8009/pgstudio/ ProxyPass / ajp://localhost:8009/
Rolesのwebserver.jsonファイルのrun_listにpgstudioのレシピの記述を追加します。
(前略)
"run_list": [ "recipe[iptables::iptables]", "recipe[apache2]", "recipe[java]", "recipe[tomcat]", "recipe[pgstudio]" ] }
WebサーバをCookします。
C:\Users\hoge\chef-repo> knife solo cook vagrant@hoge202
これで、pgstudioがインストールされて、画面が表示されるようになったが、postgresユーザでログインできません。

rsyslog4postgresql Cookbookを作る

先のDBサーバの設定のままでは、PostgreSQLがsyslogを吐かないので、専用のCookboookを作成して、syslogの設定を行います。

空のCookbookを作成します。
C:\Users\hoge\chef-repo> knife cookbook create rsyslog4postgresql -o site-cookbooks
レシピを書きます。
/etc/rsyslog.confの末尾に、local0.* /var/log/Postgres.logのエントリを追加する簡単な内容です。
また、logrotateの設定をテンプレートで上書きします。

【chef-repo\site-cookbooks\rsyslog4postgresql\recipes\deaflut.rb】
# # Cookbook Name:: rsyslog4postgresql # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # script "setup_local0_syslog" do interpreter "bash" user "root" code <<-EOH echo 'local0.* /var/log/postgres.log' >> /etc/rsyslog.conf EOH end template "/etc/logrotate.d/syslog" do source "syslog.erb" group "root" owner "root" mode "0600" end service "rsyslog" do supports :status => true, :restart => true action [ :enable, :restart ] end

【chef-repo\site-cookbooks\rsyslog4postgresql\templates\default\syslog.erb】
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler /var/log/postgres.log { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || t rue endscript }
Roleのdbserver.josnを修正します。

【chef-repo\roles\dbserver.json】
// dbserver.json { "name": "dbserver", "default_attributes": {}, "override_attributes": { "iptables" : { "postgres" : "5432" } }, "json_class": "Chef::Role", "descripution": "", "chef_type": "role", "run_list": [ "recipe[postgresql]", "recipe[postgresql::server]", "recipe[postgresql::contrib]", "recipe[iptables::iptables]", "recipe[rsyslog4postgresql]" ] }
DBサーバをCookします。
C:\Users\hoge\chef-repo> knife solo cook vagrant@hoge201

postgresのパスワードを設定するCookbookを作成する(passwd4postgresql)

空のCookbookを作成します。
C:\Users\hoge\chef-repo> knife cookbook create passwd4postgresql -o site-cookbooks

【chef-repo\site-cookbooks\ passwd4postgresql \recipes\default.rb】
# # Cookbook Name:: passwd4postgresql # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # script "set_passwd_postgres" do interpreter "bash" user "postgres" code <<-EOH psql -c "alter user postgres with password 'postgres'" EOH end

【chef-repo\roles\dbserver.json】
// dbserver.json { "name": "dbserver", "default_attributes": {}, "override_attributes": { "iptables" : { "postgres" : "5432" } }, "json_class": "Chef::Role", "descripution": "", "chef_type": "role", "run_list": [ "recipe[postgresql]", "recipe[postgresql::server]", "recipe[postgresql::contrib]", "recipe[iptables::iptables]", "recipe[rsyslog4postgresql]", "recipe[passwd4postgresql]" ] }
DBサーバをCookします。
C:\Users\hoge\chef-repo> knife solo cook vagrant@hoge201

pgstudioを使う

以上の設定にて、HostOS側からブラウザで、以下のURLを実行して、pgstudioにログインできます。
http://192.168.56.202/pgstudio/



タグ:Chef

共通テーマ:blog

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