diff --git a/.gitignore b/.gitignore index ccee7c1..aac0d89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ .rake_test_cache - +dashboard.json diff --git a/cookbooks/nova/recipes/dashboard.rb b/cookbooks/nova/recipes/dashboard.rb index 9373518..0a6571e 100644 --- a/cookbooks/nova/recipes/dashboard.rb +++ b/cookbooks/nova/recipes/dashboard.rb @@ -4,7 +4,11 @@ package "apache2" package "libapache2-mod-wsgi" -execute "bzr branch #{node[:nova][:dashboard][:dashboard_branch]} #{node[:nova][:dashboard][:deploy_dir]}" +if File.directory?(node[:nova][:dashboard][:deploy_dir]) + execute "cd #{node[:nova][:dashboard][:deploy_dir]} && bzr pull #{node[:nova][:dashboard][:dashboard_branch]}" +else + execute "bzr branch #{node[:nova][:dashboard][:dashboard_branch]} #{node[:nova][:dashboard][:deploy_dir]}" +end file "/usr/lib/python2.6/dist-packages/dashboard.pth" do content node[:nova][:dashboard][:dashboard_dir] diff --git a/cookbooks/nova/templates/default/dashboard.local_settings.erb b/cookbooks/nova/templates/default/dashboard.local_settings.erb index f90df3a..5d20e28 100644 --- a/cookbooks/nova/templates/default/dashboard.local_settings.erb +++ b/cookbooks/nova/templates/default/dashboard.local_settings.erb @@ -16,4 +16,4 @@ NOVA_DEFAULT_REGION = '<%=node[:nova][:dashboard][:default_region]%>' NOVA_ACCESS_KEY = '<%=node[:nova][:access_key]%>' NOVA_SECRET_KEY = '<%=node[:nova][:secret_key]%>' NOVA_ADMIN_USER = 'admin' -NOVA_PROJECT = 'admin' +NOVA_PROJECT = '<%=node[:nova][:project]%>' diff --git a/dashboard.json.tmpl b/dashboard.json.tmpl new file mode 100644 index 0000000..94da2e2 --- /dev/null +++ b/dashboard.json.tmpl @@ -0,0 +1,9 @@ +{ + "run_list": [ "role[dashboard-server]" ], + "nova": { + "my_ip": "MY_IP", + "access_key": "ACCESS_KEY", + "secret_key": "SECRET_KEY", + "project": "PROJECT" + } +} diff --git a/dashboard.sh b/dashboard.sh new file mode 100755 index 0000000..f6fa47c --- /dev/null +++ b/dashboard.sh @@ -0,0 +1,8 @@ +#!/bin/bash +[[ -z $EC2_ACCESS_KEY ]] && { echo "Error: EC2_ACCESS_KEY, EC2_SECRET_KEY variables must be set."; exit 1; } +ip_resolved=`host \`hostname\`` +MY_IP=`echo $ip_resolved | awk '{ print $4 }'` +PRJ=`echo $EC2_ACCESS_KEY | awk -F ':' '{ print $2 }'` +sed "s/MY_IP/$MY_IP/; s/ACCESS_KEY/$EC2_ACCESS_KEY/; \ + s/SECRET_KEY/$EC2_SECRET_KEY/; s/PROJECT/$PRJ/" dashboard.json.tmpl > dashboard.json +chef-solo -c chef-solo.rb -j dashboard.json diff --git a/roles/dashboard-server.rb b/roles/dashboard-server.rb index 45e1bb7..4592abf 100644 --- a/roles/dashboard-server.rb +++ b/roles/dashboard-server.rb @@ -3,6 +3,6 @@ run_list( "recipe[apt]", "recipe[apache2]", - "recipe[apache2::modwsgi]", + "recipe[apache2::mod_wsgi]", "recipe[nova::dashboard]" )