SSブログ

Tomcat7をインストールする [Chef]

Tomcat7に対応したCoookbookは、OPSCodeにはないので、gitのリポジジトリから次のCookbookを入手します。(もちろんProxyの設定は、必須である)

C:\Users\hoge\chef-repo> cd cookbooks chef-repo\cookbooks> git clone git://github.com/bryanwb/chef-tomcat.git
ここで、注意することは、chef-tomcatのCookbookの名前をtomcatに変更しておくことです。

java,logrotate,arkのcookbookに依存するので、これらをcookbookにダウンロードして解凍しておきます。(javaは前章で設定済み)
C:\Users\hoge\chef-repo\cookbooks> knife cookbook site download logrotate C:\Users\hoge\chef-repo\cookbooks> knife cookbook site download ark
RolesのJSONファイルを以下のように変更します。

【chef-repo\roles\webserver.json】
// webserver.json { "name": "webserver", "default_attributes": {}, "override_attributes": { "java": { "install_flavor": "oracle", "jdk_version": 7, "java_home": "/usr/local/java", "oracle" : { "accept_oracle_download_terms": true } } }, "json_class": "Chef::Role", "descripution": "", "chef_type": "role", "run_list": [ "recipe[iptables::iptables]", "recipe[apache2]", "recipe[java]", "recipe[tomcat]" ] }
Cookします。
C:\Users\hoge\chef-repo> knife solo cook vagrant@hoge202
Tomcatのport 8080/tcpが空いていないので、ブラウザからアクセスできません。iptablesを変更して、8080のportをあけるようにします。

【chef-repo\site-cookbooks\iptables\templates\default\iptables.erb】
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
※このとき、iptables.erbの改行コードが、CRLFではなく、LFで保存されるよう注意すること。

Apacheとの連携の設定

Tomcat7とApacheのAJP連携のため、apache2/templates/httpd-proxy.conf.erbを追加します。

【chef-repo\apache2\templates\httpd-proxy.conf.erb】
ProxyPass / ajp://localhost:8009/
http-proxyを展開するように、Apache2のレシピを変更します。

【chef-repo\apache2\recipes\default.rb】
# # Cookbook Name:: apache2 # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # package "httpd" do action :install end package "mod_ssl" do action :install end template "/etc/httpd/conf/httpd.conf" do source "httpd.conf.erb" group "root" owner "root" mode "0644" # notifies :reload, 'service[httpd]' end template "/etc/httpd/conf.d/ssl.conf" do source "ssl.conf.erb" group "root" owner "root" mode "0644" # notifies :reload, 'service[httpd]' end template "/etc/httpd/conf.d/httpd-proxy.conf" do source "httpd-proxy.conf.erb" group "root" owner "root" mode "0644" # notifies :reload, 'service[httpd]' end cookbook_file "/var/www/html/robots.txt" do source "robots.txt" owner "root" group "root" mode "0644" action :create_if_missing end service "httpd" do supports :status => true, :restart => true action [ :enable, :restart ] end
これで、いったんGuestOSをRollbackします。
C:\Users\hoge\chef-repo> vagrant sandbox rollback web
Cookします。
C:\Users\hoge\chef-repo> knife solo cook vagrant@hoge202


タグ:Chef Tomcat

共通テーマ:blog

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