befog 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/AUTHORS +3 -0
  2. data/Readme.md +100 -0
  3. data/VERSION +1 -0
  4. data/bin/befog +1 -10
  5. data/lib/befog.rb +1 -0
  6. metadata +40 -36
data/AUTHORS ADDED
@@ -0,0 +1,3 @@
1
+ Lance Lakey lancelakey@gmail.com
2
+ Carlo Flores lo@js.la
3
+ Dan Yoder danielyoder@gmail.com
@@ -0,0 +1,100 @@
1
+ Befog is a command line utility for cloud management. Or, put another way, it's a CLI wrapper for the `fog` gem.
2
+
3
+ Befog allows you to manage groups or clusters of servers as "banks." A bank can have one or many servers.
4
+ Features include the ability to start, stop, add to, remove, or run a command on all servers in a bank.
5
+
6
+ For example, the following command would add 3 servers to the server bank named `web-prod`:
7
+
8
+ befog add web-prod --count 3
9
+
10
+ Befog tries to be helpful whenever a command is invoked with no arguments. You can start with this:
11
+
12
+ befog
13
+
14
+ and go from there. For example, you can do:
15
+
16
+ befog add
17
+
18
+ And you'll get this:
19
+
20
+ befog add <bank> [<options>]
21
+ -c, --count COUNT The number of machines to provision (required)
22
+ -h, --help HELP Show this message
23
+ -n, --name NAME The name of this configuration (default: default)
24
+ -p, --path PATH Path to the configuration file (default: ~/.befog)
25
+ -s, --spot SPOT Provision a spot instance
26
+ -t, --type TYPE The type of machines to provision
27
+ -u, --rehearse REHEARSE Dry-run, verbose logging, but don't actually run anything
28
+
29
+ ## Configuring Befog
30
+
31
+ In order to do anything interesting, you first need to tell Befog about your cloud accounts. You do this using the `configure` subcommand.
32
+
33
+ befog configure --provider aws --key <your-aws-key> --secret <your-aws-secret>
34
+
35
+ You also need to set up bank-specific configurations.
36
+
37
+ For example, the following command sets up the provider, region, image, and keypair to be used with the server bank named `web-prod` (you can also just say `config` for short):
38
+
39
+ befog config web-prod --provider aws \
40
+ --region us-east-1 --image <your-aws-image> \
41
+ --keypair <your-keypair> --group <your-aws-group-name> \
42
+ --type <your-aws-server-type>
43
+
44
+ To see the full list of configuration options, just type:
45
+
46
+ befog config
47
+
48
+ You generally don't need to set these up very often - just when setting up a new bank, typically using a different region, provider, or image. Once a bank is configured, all servers deployed using that bank will use the bank's configuration automatically.
49
+
50
+ ## Provisioning Servers
51
+
52
+ Once you have a configuration set up, you can easily provision new servers:
53
+
54
+ befog add web-prod --count 3
55
+
56
+ You can also de-provision them just as easily:
57
+
58
+ befog remove web-prod --count 3
59
+
60
+ ## Multiple Configurations
61
+
62
+ Sometimes you want one set of servers for a test environment and another for production or a beta environment. You can use the `--name` option to specify a named configuration different environments. For example, let's start up the `web-prod` bank of our `test` environment:
63
+
64
+ befog start web-prod --name test
65
+
66
+ Each environment must be configured separately. If you don't specify a name, the name `default` is applied. Again, once configured, you can typically use that configuration over and over.
67
+
68
+ Another option is to simply use different configuration files. You can do this with the --path command.
69
+
70
+ Finally, you can simply edit configurations directly if you want, since they are just YAML files and are fairly easy to read. Be careful, though, since this can confuse `befog` if the format get mangled somehow.
71
+
72
+ ## Other Features
73
+
74
+ You can suspend a bank:
75
+
76
+ befog stop web-prod
77
+
78
+ Or start them back up:
79
+
80
+ befog start web-prod
81
+
82
+ You can even run a command on every server in a bank:
83
+
84
+ befog run web-prod --command 'apt-get install redis'
85
+
86
+ You can get a list of all the servers associated with a bank:
87
+
88
+ befog ls web-prod
89
+
90
+ or with a specific-provider:
91
+
92
+ befog ls --provider aws
93
+
94
+ or for all servers currently deployed:
95
+
96
+ befog ls
97
+
98
+ ## Limitations
99
+
100
+ Befog is currently still under development and only supports basic provisioning options for Amazon EC2.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.5.3
data/bin/befog CHANGED
@@ -1,13 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- require "rubygems"
3
-
4
- # resolve bin path, ignoring symlinks
5
- require "pathname"
6
- bin_file = Pathname.new(__FILE__).realpath
7
-
8
- # add self to libpath
9
- $:.unshift File.expand_path("../../lib", bin_file)
10
-
11
- require "befog"
12
2
 
3
+ require_relative "../lib/befog"
13
4
  Befog::CLI.run(ARGV)
@@ -1,5 +1,6 @@
1
1
  module Befog
2
2
  VERSION = begin
3
+ require "pathname"
3
4
  path = File.expand_path("../../VERSION", Pathname.new(__FILE__).realpath)
4
5
  File.read(path).chomp
5
6
  end
metadata CHANGED
@@ -1,81 +1,86 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: befog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
5
- prerelease:
4
+ prerelease:
5
+ version: 0.5.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Lance Lakey lancelakey@gmail.com
9
9
  - Carlo Flores lo@js.la
10
10
  - Dan Yoder danielyoder@gmail.com
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-11-12 00:00:00.000000000 Z
14
+ date: 2012-11-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: fog
18
- requirement: !ruby/object:Gem::Requirement
19
- none: false
18
+ version_requirements: !ruby/object:Gem::Requirement
20
19
  requirements:
21
20
  - - ~>
22
21
  - !ruby/object:Gem::Version
23
22
  version: '1.3'
24
- type: :runtime
25
- prerelease: false
26
- version_requirements: !ruby/object:Gem::Requirement
27
23
  none: false
24
+ requirement: !ruby/object:Gem::Requirement
28
25
  requirements:
29
26
  - - ~>
30
27
  - !ruby/object:Gem::Version
31
28
  version: '1.3'
29
+ none: false
30
+ prerelease: false
31
+ type: :runtime
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: rspec
34
- requirement: !ruby/object:Gem::Requirement
35
- none: false
34
+ version_requirements: !ruby/object:Gem::Requirement
36
35
  requirements:
37
36
  - - ~>
38
37
  - !ruby/object:Gem::Version
39
38
  version: '2.7'
40
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
39
  none: false
40
+ requirement: !ruby/object:Gem::Requirement
44
41
  requirements:
45
42
  - - ~>
46
43
  - !ruby/object:Gem::Version
47
44
  version: '2.7'
45
+ none: false
46
+ prerelease: false
47
+ type: :development
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: yard
50
- requirement: !ruby/object:Gem::Requirement
51
- none: false
50
+ version_requirements: !ruby/object:Gem::Requirement
52
51
  requirements:
53
52
  - - ~>
54
53
  - !ruby/object:Gem::Version
55
54
  version: '0.7'
56
- type: :development
57
- prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
59
55
  none: false
56
+ requirement: !ruby/object:Gem::Requirement
60
57
  requirements:
61
58
  - - ~>
62
59
  - !ruby/object:Gem::Version
63
60
  version: '0.7'
64
- description: ! "\t\tThe befog gem allows you to manage your cloud servers\n\t\tdirectly
65
- from the command-line. \n"
61
+ none: false
62
+ prerelease: false
63
+ type: :development
64
+ description: ! "\t\tThe befog gem allows you to manage your cloud servers\n\t\tdirectly\
65
+ \ from the command-line. \n"
66
66
  email:
67
- -
68
- -
69
- -
67
+ -
68
+ -
69
+ -
70
70
  executables:
71
71
  - befog
72
72
  extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
75
  - lib/befog/cli.rb
76
+ - lib/befog/commands.rb
76
77
  - lib/befog/commands/add.rb
77
78
  - lib/befog/commands/configure.rb
78
79
  - lib/befog/commands/list.rb
80
+ - lib/befog/commands/remove.rb
81
+ - lib/befog/commands/run.rb
82
+ - lib/befog/commands/start.rb
83
+ - lib/befog/commands/stop.rb
79
84
  - lib/befog/commands/mixins/command.rb
80
85
  - lib/befog/commands/mixins/configurable.rb
81
86
  - lib/befog/commands/mixins/help.rb
@@ -83,36 +88,35 @@ files:
83
88
  - lib/befog/commands/mixins/scope.rb
84
89
  - lib/befog/commands/mixins/selectable.rb
85
90
  - lib/befog/commands/mixins/traceable.rb
86
- - lib/befog/commands/remove.rb
87
- - lib/befog/commands/run.rb
88
- - lib/befog/commands/start.rb
89
- - lib/befog/commands/stop.rb
90
- - lib/befog/commands.rb
91
91
  - lib/befog.rb
92
92
  - bin/befog
93
+ - VERSION
94
+ - AUTHORS
95
+ - Readme.md
93
96
  homepage: https://github.com/dyoder/befog
94
97
  licenses: []
95
- post_install_message:
98
+ post_install_message:
96
99
  rdoc_options: []
97
100
  require_paths:
98
101
  - lib
99
102
  required_ruby_version: !ruby/object:Gem::Requirement
100
- none: false
101
103
  requirements:
102
104
  - - ! '>='
103
105
  - !ruby/object:Gem::Version
104
106
  version: '0'
105
- required_rubygems_version: !ruby/object:Gem::Requirement
106
107
  none: false
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
109
  requirements:
108
110
  - - ! '>='
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0'
113
+ none: false
111
114
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 1.8.23
114
- signing_key:
115
+ rubyforge_project:
116
+ rubygems_version: 1.8.24
117
+ signing_key:
115
118
  specification_version: 3
116
119
  summary: Cloud provisioning CLI
117
120
  test_files: []
118
- has_rdoc:
121
+ has_rdoc:
122
+ ...