Skip to content

Instantly share code, notes, and snippets.

@LolWalid
Last active April 1, 2016 09:52
Show Gist options
  • Save LolWalid/5059823b081096b6a6c7 to your computer and use it in GitHub Desktop.
Save LolWalid/5059823b081096b6a6c7 to your computer and use it in GitHub Desktop.
Add Chef To your project

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

capistrano

https://github.com/capistrano/capistrano

cap install

Don't forget secret_key_base settings

Backup

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment