befog 0.5.2 → 0.5.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.
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
+ ...