export EDITOR=emacs
gem install knife-solo
knife solo init chef
cd chef
touch Gemfile, add custom stuff
bundle install
librarian-chef init
librarian-chef install
knife solo data bag create rubies ruby-2.2.2
knife cookbook create percona -o site-cookbooks
openssl rand -base64 512 | tr -d '\r\n' > .chef/encrypted_data_bag_secret
edit .chef/knife.rb
knife solo data bag create passwords mysql
knife cookbook create instagram_manager -o site-cookbooks
https://github.com/capistrano/capistrano
cap install
Don't forget secret_key_base settings
http://backup.github.io/backup/v4/
gem install backup
backup generate:model --trigger my_backup
edit ~/Backup/models/my_backup.rb
Model.new(:my_backup, 'Description backup') do
# MySQL [Database]
database MySQL do |db|
# To dump all databases, set `db.name = :all` (or leave blank)
db.name = "db_name"
db.host = host
db.port = 3306
db.additional_options = ["--defaults-extra-file=~/Backup/databases/db_name.cnf", "--quick", "--single-transaction"]
end
# Amazon Simple Storage Service [Storage]
store_with S3
# Gzip [Compressor]
compress_with Gzip
# Slack [Notifier]
notify_by Slack do |slack|
slack.on_success = true
slack.on_warning = true
slack.on_failure = true
slack.webhook_url = 'https://hooks.slack.com/services/XXXXXXXX'
slack.channel = 'XXXXXXXX'
slack.username = 'XXXXXXXX'
end
end
edit ~/Backup/databases/db_name.cnf
host = host
user = user_name
password = 'password'
edit ~/Backup/config.rb
Storage::S3.defaults do |s3|
s3.access_key_id = "XXXX"
s3.secret_access_key = "XXXX"
s3.region = "XXXX"
s3.bucket = "buckets"
s3.path = "XXXX"
s3.keep = 10
end
backup check
backup perform --trigger my_backup