ops_tasks 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: afb1c2ecdea10202f7a3be3d83d730576a1763c5
4
- data.tar.gz: e4d3aa4691464c502410dfe5838e64e2fe9bc679
3
+ metadata.gz: eab2ec03b9aa9a8741a9fb34d717617c578333a9
4
+ data.tar.gz: 5d815350ddaf2fdfa94b57a10d5a9bf74cb87880
5
5
  SHA512:
6
- metadata.gz: b19660108530baf9e6d0bf26c96753b014ffb5bdcf323834a4f8461cfecd61ba322d2ce68305ed5c124d85a71b175535f9ddffb23b5639b1dc1704dd594be305
7
- data.tar.gz: 5f65e0aa6d7d390d88cb60639a2984a1bbad8f528c22e660891f1ca57d80fa677dbd37fd09da36b0d437872baf75f596bcd5e0b7372092bc19a6d245906fb2ba
6
+ metadata.gz: a07f9941ac19f766c77d75816115f01bc2516afe0c662f72f313a7727b6813a9943184b006d45e93366844d2d043599ffea45eac648f5939c32fb72c064e36c0
7
+ data.tar.gz: 1205ec07abf44398422cb98231dfafdb68a34da804f3c4de7bc7553ff705d0be7c3bd1b44e77cf3b9da7e80742d291762adc881c623f9c09583532b543c8166e
@@ -0,0 +1,10 @@
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ test/dummy/db/*.sqlite3
5
+ test/dummy/db/*.sqlite3-journal
6
+ test/dummy/log/*.log
7
+ test/dummy/tmp/
8
+ test/dummy/.sass-cache
9
+ *.gem
10
+ .env
@@ -0,0 +1 @@
1
+ ruby-2.1.5
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Declare your gem's dependencies in aws_deployment_tasks.gemspec.
4
+ # Bundler will treat runtime dependencies like base dependencies, and
5
+ # development dependencies will be added by default to the :development group.
6
+ gemspec
7
+
8
+ # Declare any dependencies that are still in development here instead of in
9
+ # your gemspec. These might include edge Rails or gems from your path or
10
+ # Git. Remember to move these dependencies to your gemspec before releasing
11
+ # your gem to rubygems.org.
12
+
13
+ # To use a debugger
14
+ # gem 'byebug', group: [:development, :test]
@@ -0,0 +1,49 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ops_tasks (0.4.3)
5
+ aws-sdk (~> 1)
6
+ dotenv (~> 0)
7
+ highline (~> 1)
8
+ say2slack (~> 0)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ aws-sdk (1.64.0)
14
+ aws-sdk-v1 (= 1.64.0)
15
+ aws-sdk-v1 (1.64.0)
16
+ json (~> 1.4)
17
+ nokogiri (>= 1.4.4)
18
+ domain_name (0.5.24)
19
+ unf (>= 0.0.5, < 1.0.0)
20
+ dotenv (0.11.1)
21
+ dotenv-deployment (~> 0.0.2)
22
+ dotenv-deployment (0.0.2)
23
+ highline (1.6.21)
24
+ http-cookie (1.0.2)
25
+ domain_name (~> 0.5)
26
+ json (1.8.3)
27
+ mime-types (2.6.1)
28
+ mini_portile (0.6.2)
29
+ netrc (0.10.3)
30
+ nokogiri (1.6.6.2)
31
+ mini_portile (~> 0.6.0)
32
+ rest-client (1.8.0)
33
+ http-cookie (>= 1.0.2, < 2.0)
34
+ mime-types (>= 1.16, < 3.0)
35
+ netrc (~> 0.7)
36
+ say2slack (0.0.6)
37
+ rest-client (~> 1.8)
38
+ unf (0.1.4)
39
+ unf_ext
40
+ unf_ext (0.0.7.1)
41
+
42
+ PLATFORMS
43
+ ruby
44
+
45
+ DEPENDENCIES
46
+ ops_tasks!
47
+
48
+ BUNDLED WITH
49
+ 1.10.4
@@ -0,0 +1,81 @@
1
+ # Ops Tasks
2
+
3
+ Provides your rails project with rake tasks for deploying to AWS via Opsworks
4
+
5
+ - Alerts Slack channel that deployment is starting
6
+ - Initiates a deployment on Opsworks
7
+ - Monitors deployment until completion
8
+ - Alerts Slack channel of result status for deployment
9
+
10
+ ## Setup
11
+
12
+ #### Add gem & source
13
+
14
+ # Gemfile
15
+ gem 'ops_tasks'
16
+
17
+ #### Find your AWS IAM Credentials
18
+
19
+ If my AWS IAM user name was `Nick`
20
+
21
+ `https://console.aws.amazon.com/iam/home?region=us-east-1#users/Nick`
22
+
23
+ Then click 'Manage Access Keys' and create a new Access Key. The secret key will only be shown once. After that, you'll have to create a new one if you lose it.
24
+
25
+ #### Find your stack and instance IDs
26
+
27
+ These are listed on the settings or details page for stacks and instances, and they're called _Opsworks ID_.
28
+
29
+
30
+ #### Setup your environment variables as follows:
31
+
32
+ | variable name | description |
33
+ | --------------|-------------- |
34
+ | AWS_ACCESS_KEY_ID | your AWS access key id / API key |
35
+ | AWS_SECRET_ACCESS_KEY | your AWS secret key / API secret |
36
+ | AWS_REGION | region of AWS instance (should always be us-east-1) |
37
+ | production_layer_id | opsworks layer id for production servers |
38
+ | production_stack_id | opsworks stack id for production server |
39
+ | production_deploy_recipe | deployment recipe for production server (cookbook-name::recipe-name) |
40
+ | production_project_name | Project description used in hipchat alert ("App Name Production") |
41
+ | production_room_notifications | true or false; enable or disable slack alerts |
42
+ | production_slack_channel | Slack channel to alert of deployment |
43
+ | SLACK_API_TOKEN | API token for your slack team |
44
+ | SLACK_BOT_IMG | url for the icon that appears with the alert in slack. defaults to Bender. |
45
+
46
+ To add additional layers, just copy the above format, and change `production` to whatever you'd like to name it. The deploy task will automatically detect your configurations based on the environment variables you set.
47
+
48
+ ```
49
+ your_server_name_layer_id
50
+ your_server_name_stack_id
51
+ your_server_name_deploy_recipe
52
+ your_server_name_project_name
53
+ your_server_name_slack_channel
54
+ your_server_name_room_notifications
55
+ ```
56
+
57
+ You can use figaro or dotenv. I prefer figaro.
58
+
59
+ ## Usage
60
+
61
+ ### Update Cookbooks
62
+
63
+ rake staging:update_cookbooks
64
+ rake production:update_cookbooks
65
+
66
+ ### Deploy to AWS
67
+
68
+ bundle exec rake deploy
69
+
70
+ Select a server...
71
+ 1. staging
72
+ 2. production
73
+ 3. realtime
74
+ 4. sidekiq
75
+ 5. quit
76
+ ? 4
77
+ Sidekiq Server: Preparing deployment... successful
78
+ Sidekiq Server: Running... successful
79
+
80
+
81
+
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'ops_tasks'
4
+ require 'highline/import'
5
+ require 'dotenv'
6
+
7
+ Dotenv.load
8
+
9
+ if ARGV[0] == 'init'
10
+ `touch .env`
11
+ `echo 'AWS_ACCESS_KEY_ID=' > .env`
12
+ `echo 'AWS_SECRET_ACCESS_KEY=' >> .env`
13
+ `echo 'production_deploy_recipe=' >> .env`
14
+ `echo 'production_stack_id=' >> .env`
15
+ `echo 'production_layer_id=' >> .env`
16
+ `echo 'production_project_name=' >> .env`
17
+ `echo 'production_slack_channel=' >> .env`
18
+ elsif ARGV[0] == 'add'
19
+
20
+ `echo "\n#{ARGV[1]}_deploy_recipe=" >> .env`
21
+ `echo "#{ARGV[1]}_stack_id=" >> .env`
22
+ `echo "#{ARGV[1]}_layer_id=" >> .env`
23
+ `echo "#{ARGV[1]}_project_name=" >> .env`
24
+ `echo "#{ARGV[1]}_slack_channel=" >> .env`
25
+ elsif ARGV.size.zero?
26
+ puts "ops_tasks [deploy|update_cookbooks|setup|configure|init] <args>"
27
+ else
28
+ deployment = OpsTasks::RakeHelper.create_deployment
29
+ deploy_id = deployment.send(ARGV[0].to_sym)
30
+ deployment.wait_for_completion(deploy_id, ARGV[0].gsub(/\s/, '_'))
31
+ end
@@ -20,17 +20,20 @@ module OpsTasks
20
20
  if servers.size > 1
21
21
  @server_type = nil
22
22
  say("\nSelect a server...")
23
- choose do |menu|
24
- servers.each do |server|
25
- menu.choice server do @server_type = server end
26
- end
27
- menu.choice "quit" do exit end
28
- end
23
+ show_menu(servers)
29
24
  else
30
25
  @server_type = servers.first
31
26
  end
32
-
33
- return @server_type
27
+ @server_type
28
+ end
29
+
30
+ def self.show_menu(servers)
31
+ choose do |menu|
32
+ servers.each do |server|
33
+ menu.choice server do @server_type = server end
34
+ end
35
+ menu.choice "quit" do exit end
36
+ end
34
37
  end
35
38
 
36
39
  def self.create_deployment
@@ -1,3 +1,3 @@
1
1
  module OpsTasks
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
@@ -0,0 +1,27 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ # Maintain your gem's version:
4
+ require "ops_tasks/version"
5
+
6
+ # Describe your gem and declare its dependencies:
7
+ Gem::Specification.new do |s|
8
+ s.name = "ops_tasks"
9
+ s.version = OpsTasks::VERSION
10
+ s.authors = ["Nick Prokesch"]
11
+ s.email = ["nick@prokes.ch"]
12
+ s.homepage = "http://nick.prokes.ch"
13
+ s.summary = "AWS Opsworks Commands"
14
+ s.description = "AWS Opsworks Rake & CLI Tasks for Deployment"
15
+ s.license = "MIT"
16
+ s.executables = ["ops_tasks"]
17
+
18
+ s.files = `git ls-files`.split($\)
19
+ s.test_files = Dir["test/**/*"]
20
+
21
+ # s.add_dependency "rails", "~> 4"
22
+ s.add_dependency "aws-sdk", "~> 1"
23
+ s.add_dependency "say2slack", "~> 0"
24
+ s.add_dependency "highline", "~> 1"
25
+ s.add_dependency "dotenv", "~> 0"
26
+
27
+ end
metadata CHANGED
@@ -1,86 +1,94 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_tasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Prokesch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-02 00:00:00.000000000 Z
11
+ date: 2015-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: aws-sdk
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4'
19
+ version: '1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4'
26
+ version: '1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: aws-sdk
28
+ name: say2slack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1'
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: say2slack
42
+ name: highline
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: highline
56
+ name: dotenv
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: Opsworks Rake Tasks for Deployment
69
+ description: AWS Opsworks Rake & CLI Tasks for Deployment
70
70
  email:
71
71
  - nick@prokes.ch
72
- executables: []
72
+ executables:
73
+ - ops_tasks
73
74
  extensions: []
74
75
  extra_rdoc_files: []
75
76
  files:
77
+ - ".gitignore"
78
+ - ".ruby-verion"
79
+ - Gemfile
80
+ - Gemfile.lock
76
81
  - MIT-LICENSE
82
+ - README.md
77
83
  - Rakefile
84
+ - bin/ops_tasks
78
85
  - lib/ops_tasks.rb
79
86
  - lib/ops_tasks/deployment.rb
80
87
  - lib/ops_tasks/railtie.rb
81
88
  - lib/ops_tasks/rake_helper.rb
82
89
  - lib/ops_tasks/version.rb
83
90
  - lib/tasks/ops_tasks.rake
91
+ - ops_tasks.gemspec
84
92
  homepage: http://nick.prokes.ch
85
93
  licenses:
86
94
  - MIT
@@ -101,8 +109,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
109
  version: '0'
102
110
  requirements: []
103
111
  rubyforge_project:
104
- rubygems_version: 2.4.5
112
+ rubygems_version: 2.2.2
105
113
  signing_key:
106
114
  specification_version: 4
107
- summary: Opsworks Rake Tasks for Deployment
115
+ summary: AWS Opsworks Commands
108
116
  test_files: []