Skip to content
This repository has been archived by the owner on Jul 11, 2020. It is now read-only.

Commit

Permalink
finish backups!
Browse files Browse the repository at this point in the history
  • Loading branch information
dwradcliffe committed Jul 1, 2014
1 parent 2549fba commit f149e68
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 52 deletions.
9 changes: 6 additions & 3 deletions Berksfile.lock
Expand Up @@ -206,8 +206,9 @@ GRAPH
user (>= 0.0.0)
rubygems-apt (0.0.5)
apt (>= 0.0.0)
rubygems-backups (0.0.6)
rubygems-backups (0.0.14)
chef-vault (>= 0.0.0)
rubygems-ruby (>= 0.0.0)
rubygems-balancer (0.0.15)
chef-vault (>= 0.0.0)
nginx (>= 0.0.0)
Expand All @@ -229,11 +230,12 @@ GRAPH
nginx (>= 0.0.0)
rubygems (>= 0.0.0)
rubygems-cloud-init (0.0.1)
rubygems-database (0.0.23)
rubygems-database (0.0.24)
chef-vault (>= 0.0.0)
database (>= 0.0.0)
postgresql (>= 0.0.0)
rubygems (>= 0.0.0)
rubygems-backups (>= 0.0.0)
rubygems-fail2ban (0.0.2)
fail2ban (>= 0.0.0)
rubygems-hostname (0.1.4)
Expand Down Expand Up @@ -264,9 +266,10 @@ GRAPH
rubygems-people (0.0.18)
sudo (>= 0.0.0)
user (>= 0.0.0)
rubygems-redis (0.0.2)
rubygems-redis (0.0.3)
redisio (>= 0.0.0)
rubygems (>= 0.0.0)
rubygems-backups (>= 0.0.0)
rubygems-repo (0.0.16)
aptly (>= 0.0.0)
nginx (>= 0.0.0)
Expand Down
5 changes: 4 additions & 1 deletion cookbooks/rubygems-backups/metadata.rb
@@ -1,5 +1,8 @@
name 'rubygems-backups'

version '0.0.6'
version '0.0.14'

depends 'chef-vault'
depends 'rubygems-ruby'

supports 'ubuntu'
12 changes: 1 addition & 11 deletions cookbooks/rubygems-backups/recipes/_common.rb
Expand Up @@ -7,17 +7,7 @@

node.default['rubygems']['backups']['config_dir'] = '/var/lib/rubygems-backup'

%w( ruby2.0 ruby2.0-dev ).each do |pkg|
package pkg
end

link '/usr/bin/ruby' do
to '/usr/bin/ruby2.0'
end

link '/usr/bin/gem' do
to '/usr/bin/gem2.0'
end
include_recipe 'rubygems-ruby'

gem_package 'backup' do
version '~> 4.0'
Expand Down
21 changes: 11 additions & 10 deletions cookbooks/rubygems-backups/recipes/postgresql.rb
Expand Up @@ -17,20 +17,21 @@
postgresql_db: "rubygems_#{node.chef_environment}",
postgresql_user: secrets['rails_postgresql_user'],
postgresql_password: node['postgresql']['password']['postgres'],
gpg: backup_secrets['gpg_keys'],
gpg_email: backup_secrets['gpg_email'],
gpg_public_key: backup_secrets['gpg_public_key'],
aws_access_key: backup_secrets['aws_access_key'],
aws_secret_key: backup_secrets['aws_secret_key'],
bucket_name: 'rubygems-backups',
slack_token: backup_secrets['slack_token']
)
end

# cron 'postgresql-backup' do
# hour '22'
# minute '22'
# day '*'
# month '*'
# weekday '*'
# command "backup perform --trigger postgresql --config-file #{File.join(node['rubygems']['backups']['config_dir'], 'postgresql.rb')}"
# user 'root'
# end
cron 'postgresql-backup' do
hour '22'
minute '22'
day '*'
month '*'
weekday '*'
command "backup perform --trigger postgresql --config-file #{File.join(node['rubygems']['backups']['config_dir'], 'postgresql.rb')}"
user 'root'
end
23 changes: 12 additions & 11 deletions cookbooks/rubygems-backups/recipes/redis.rb
Expand Up @@ -7,26 +7,27 @@

backup_secrets = chef_vault_item('secrets', 'backups')

template File.join(['rubygems']['backups']['config_dir'], 'redis.rb') do
template File.join(node['rubygems']['backups']['config_dir'], 'redis.rb') do
source 'redis.rb.erb'
owner 'root'
group 'root'
mode 00600
variables(
gpg: backup_secrets['gpg_keys'],
gpg_email: backup_secrets['gpg_email'],
gpg_public_key: backup_secrets['gpg_public_key'],
aws_access_key: backup_secrets['aws_access_key'],
aws_secret_key: backup_secrets['aws_secret_key'],
bucket_name: 'rubygems-backups',
slack_token: backup_secrets['slack_token']
)
end

# cron 'redis-backup' do
# hour '23'
# minute '23'
# day '*'
# month '*'
# weekday '*'
# command "backup perform --trigger redis --config-file #{File.join(node['rubygems']['backups']['config_dir'], 'redis.rb')}"
# user 'root'
# end
cron 'redis-backup' do
hour '23'
minute '23'
day '*'
month '*'
weekday '*'
command "backup perform --trigger redis --config-file #{File.join(node['rubygems']['backups']['config_dir'], 'redis.rb')}"
user 'root'
end
10 changes: 5 additions & 5 deletions cookbooks/rubygems-backups/templates/default/postgresql.rb.erb
Expand Up @@ -22,18 +22,18 @@ Backup::Model.new(:postgresql, 'PostgreSQL Backup') do

encrypt_with GPG do |encryption|
encryption.keys = {}
<% @gpg.each do |k, v| %>
encryption.keys['<%= k %>'] = <<-KEY
<%= v %>
encryption.keys['<%= @gpg_email %>'] = <<-KEY
<%= @gpg_public_key %>
KEY
<% end %>
encryption.recipients = <%= @gpg.keys.inspect %>
encryption.recipients = '<%= @gpg_email %>'
end

store_with S3 do |s3|
s3.access_key_id = '<%= @aws_access_key %>'
s3.secret_access_key = '<%= @aws_secret_key %>'
s3.bucket = '<%= @bucket_name %>'
s3.region = 'us-west-2'
s3.path = '<%= node.chef_environment %>'
end

notify_by HttpPost do |post|
Expand Down
16 changes: 7 additions & 9 deletions cookbooks/rubygems-backups/templates/default/redis.rb.erb
Expand Up @@ -11,30 +11,28 @@ require 'json'
Backup::Model.new(:redis, 'Redis Backup') do

database Redis do |db|
db.name = '<%= node['redis']['dbfilename'].gsub('.rdp','') %>'
db.path = '<%= node['redis']['dir'] %>'
db.rdb_path = '/var/lib/redis/dump-<%= node['redisio']['servers'][0]['port'] %>.rdb'
db.host = 'localhost'
db.port = <%= node['redis']['port'] %>
db.socket = '<%= node['redis']['unixsocket'] %>'
db.port = <%= node['redisio']['servers'][0]['port'] %>
db.invoke_save = true
end

compress_with Gzip

encrypt_with GPG do |encryption|
encryption.keys = {}
<% @gpg.each do |k, v| %>
encryption.keys['<%= k %>'] = <<-KEY
<%= v %>
encryption.keys['<%= @gpg_email %>'] = <<-KEY
<%= @gpg_public_key %>
KEY
<% end %>
encryption.recipients = <%= @gpg.keys.inspect %>
encryption.recipients = '<%= @gpg_email %>'
end

store_with S3 do |s3|
s3.access_key_id = '<%= @aws_access_key %>'
s3.secret_access_key = '<%= @aws_secret_key %>'
s3.bucket = '<%= @bucket_name %>'
s3.region = 'us-west-2'
s3.path = '<%= node.chef_environment %>'
end

notify_by HttpPost do |post|
Expand Down
3 changes: 2 additions & 1 deletion cookbooks/rubygems-database/metadata.rb
@@ -1,11 +1,12 @@
name 'rubygems-database'
maintainer 'RubyGems.org ops team'

version '0.0.23'
version '0.0.24'

depends 'chef-vault'
depends 'database'
depends 'postgresql'
depends 'rubygems'
depends 'rubygems-backups'

supports 'ubuntu'
2 changes: 2 additions & 0 deletions cookbooks/rubygems-database/recipes/default.rb
Expand Up @@ -30,3 +30,5 @@

include_recipe 'postgresql::server'
include_recipe 'postgresql::ruby'

include_recipe 'rubygems-backups::postgresql'
3 changes: 2 additions & 1 deletion cookbooks/rubygems-redis/metadata.rb
@@ -1,9 +1,10 @@
name 'rubygems-redis'
maintainer 'RubyGems.org ops team'

version '0.0.2'
version '0.0.3'

depends 'redisio'
depends 'rubygems'
depends 'rubygems-backups'

supports 'ubuntu'
2 changes: 2 additions & 0 deletions cookbooks/rubygems-redis/recipes/default.rb
Expand Up @@ -9,3 +9,5 @@

include_recipe 'redisio::install'
include_recipe 'redisio::enable'

include_recipe 'rubygems-backups::redis'

0 comments on commit f149e68

Please sign in to comment.