Created
July 13, 2011 22:52
-
-
Save abondis/1081518 to your computer and use it in GitHub Desktop.
cookbook/recipes/websites
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
include_recipe "mysql::client" | |
node[:websites].each do |website| | |
db_website = search(:websites, "id:#{website} AND status:enabled").first | |
puts "apptype: #{db_website}" | |
case db_website["apptype"] | |
when "php", "dp", "wp" | |
document_root="/var/www/#{db_website["client"]}/#{db_website["id"]}" | |
package "php" | |
include_recipe "apache2::mod_php5" | |
apache_module "php5" | |
web_app db_website["id"] do | |
template "vhost-#{db_website["apptype"]}.erb" | |
docroot document_root | |
server_name db_website["name"] | |
server_aliases db_website["aliases"] | |
env node.chef_environment | |
end | |
case db_website["apptype"] | |
when "wp" | |
tpl = "#{document_root}/wp-config.php" | |
when "dp" | |
tpl = "#{document_root}/sites/default/settings.php" | |
end | |
if node[:environment] == "stage" | |
# if db_website["dbstage"] == "" | |
# set node.websites[website]['dbstage'] = node[:name] | |
# end | |
dbhost = db_website["dbstage"] | |
else | |
# if db_website["db"] == "" | |
# set node.websites[website]['db'] = node[:name] | |
# end | |
dbhost = db_website["db"] | |
end | |
user db_website["id"] do | |
comment "#{db_website["name"]}" | |
system true | |
shell "/bin/false" | |
end | |
group "devs" do | |
members db_website["id"] | |
end | |
directory document_root do | |
owner db_website["id"] | |
group "devs" | |
mode "0755" | |
recursive true | |
action :create | |
end | |
if db_website["repo"] != "" | |
url = db_website["repo"][%r{(https?://|.*@)?[^/]*}].gsub(":", '\\:') | |
url= url.gsub('/','?') | |
puts "url #{url}" | |
db_repo = search(:repos, "url:#{url}\*").first | |
puts "db_repo #{db_repo}" | |
case db_website["repotype"] | |
when "svn" | |
subversion db_website["id"] do | |
repository db_website["repo"] | |
destination document_root | |
user db_website["id"] | |
group "devs" | |
svn_password db_repo["password"] | |
svn_username db_repo["username"] | |
svn_arguments "--non-interactive" | |
action :sync | |
end # end svn | |
when "git" | |
git db_website["id"] do | |
repository db_website["repo"] | |
destination document_root | |
user db_website["id"] | |
action :sync | |
end # end git | |
end # end case repotype | |
end # end if repo | |
tplpath = tpl.split("/")[0..-2].join("/") | |
directory tplpath do | |
owner db_website["id"] | |
group "devs" | |
mode 0755 | |
recursive true | |
:create | |
end # end directory | |
template tpl do | |
source "config-#{db_website["apptype"]}.erb" | |
owner db_website["id"] | |
group "devs" | |
mode 0440 | |
variables( | |
:server_name => db_website["name"], | |
:dbhost => dbhost, | |
:dbname => db_website["id"], | |
:dbuser => db_website["id"], | |
:dbpass => db_website["dbpass"] | |
) | |
end # template | |
end | |
end # end .each |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment