open-dock 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8340dc1d9ed30ab838684a200392cd8fd4f2140c
4
- data.tar.gz: 59be740879ae8b0d20f1922aa50e2e18b836fcbb
3
+ metadata.gz: cf6816945fadbf9f29bb522fc8927181a6d7b71d
4
+ data.tar.gz: f4227581bfcabb9e3521d005256125793c7906a4
5
5
  SHA512:
6
- metadata.gz: 8088a4120fee8f554b61666acf1d07c85baa17e1c6b84dc1c0c70d27a3a5d4fced83285036541dddab319bd7ab6716b349912b2b6477de15cc600a6a8b9a0a21
7
- data.tar.gz: 97a4f66849cf3c9d42dc10c3240aafa25a13d01af092c429607f7a97ea1bcf062beb39543332b1d95bce1d5f34de3c1087c3a4ead5aeb099ba98a24c684bdc78
6
+ metadata.gz: 6d199fed796f50fbd43c953612255f0120fb7920a36ef6ec95d63f1bc721730b51310091145e1fd2d25f0c2c428d8ca25647be2c0cefc237093e9c91f8e2eebf
7
+ data.tar.gz: e062ad3c3c9fb591db0f2d4ba8c32be5393e09524560c920d6b4daa333a45a6f5a53234b55702a40bab315de7932079a878899b1a0f5a6a9a0eec863cdd175b0
data/README.md CHANGED
@@ -45,8 +45,6 @@ containers
45
45
 
46
46
  `ops list` command will list all providers supported by this gem.
47
47
 
48
- TODO: Create more providers (vagrant, aws, linode, gcloud, ...)
49
-
50
48
  ### Digital Ocean
51
49
 
52
50
  Pre-requisites:
@@ -90,6 +88,25 @@ Helpful commands:
90
88
 
91
89
  By default `user` to connect to host will be 'root' if not configured.
92
90
 
91
+ ### Vagrant Host
92
+
93
+ With Vagrant we do not need provider file anymore. But obviously qyou need to have installed in your workstation:
94
+
95
+ * [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
96
+ * [Vagrant](https://www.vagrantup.com/downloads.html)
97
+
98
+ For a Vagrant host we can make the following file (ops/hosts/example.com.yml):
99
+
100
+ ```yml
101
+ provider: vagrant
102
+ user: root # User to connect the host
103
+ memory: 2048
104
+ ip: 192.168.33.20
105
+ box: ubuntu/trusty64 ## Search on https://atlas.hashicorp.com
106
+ ```
107
+
108
+ `ops create example.com` will create Vagrantfile, so you can suspend it `vagrant suspend` or manipulate with vagrant commands.
109
+
93
110
  ### Digital Ocean Host
94
111
 
95
112
  For a Digital Ocean host we can make the following file (ops/hosts/example.com.yml):
@@ -212,6 +229,7 @@ Assuming SSHd installed in containers and hosts, you can
212
229
  Create/delete domain names, create/delete hosts and ship/unship hosts:
213
230
 
214
231
  * TODO: `ops init` initialize needed folders and example files
232
+ * TODO: `ops list` shows all providers for this gem. Create more providers (aws, linode, gcloud, ...)
215
233
  * `ops create HOST_NAME` create the host defined by the name of the file in the 'ops/hosts' folder.
216
234
  * `ops delete HOST_NAME`
217
235
  * TODO: `ops recreate HOST_NAME` delete/create the host.
@@ -221,6 +239,7 @@ Create/delete domain names, create/delete hosts and ship/unship hosts:
221
239
  * TODO: `ops reship HOST_NAME` unship/ship all containers from host.
222
240
  * `ops configure HOST_NAME` configure all containers with chef.
223
241
  * `ops ssh HOST_NAME [CONTAINER_NAME]` ssh connection to host or container
242
+ * TODO: `ops graph` creates a graphic with all hosts and nodes in the project
224
243
 
225
244
  ## Create your infrastructure project (/ops)
226
245
 
@@ -303,4 +322,8 @@ Create command `ops configure [host_name]` this will cook all containers. By con
303
322
  ### v0.1.3
304
323
 
305
324
  * Chef containers configuration files goes to nodes/[host_name]/[container_name].json
306
- * Create ssh connections commands: 'ops ssh [host_name] [container_name]'
325
+ * Create ssh connections commands: 'ops ssh [host_name] [container_name]'
326
+
327
+ ### v0.1.8
328
+
329
+ * Including Vagrant provider
@@ -1,6 +1,6 @@
1
1
  require "fog"
2
2
  require "google/api_client"
3
- Fog::VERSION=1
3
+ # Fog::VERSION=1
4
4
  I18n.enforce_available_locales = false
5
5
 
6
6
  class GoogleCloud < Provider
@@ -0,0 +1,57 @@
1
+ require 'erubis'
2
+
3
+ class Vagrant < Provider
4
+ TEMPLATE = %{Vagrant.configure(2) do |config|
5
+ config.vm.box = "<%=box%>"
6
+ config.vm.hostname = "<%=name%>"
7
+
8
+ config.vm.network "private_network", ip: "<%=ip%>"
9
+
10
+ config.vm.provider "virtualbox" do |vb|
11
+ vb.name = config.vm.hostname
12
+ vb.memory = "<%=memory%>"
13
+ end
14
+
15
+ config.vm.provision "file", source: "~/.ssh/id_rsa.pub", destination: "/tmp/id_rsa.pub"
16
+ config.vm.provision "shell", inline: <<-SHELL
17
+ # Copy host public key
18
+ sudo mv /tmp/id_rsa.pub /root/.ssh/authorized_keys
19
+ sudo chown root:root /root/.ssh/authorized_keys
20
+ # Install docker
21
+ wget -qO- https://get.docker.io/gpg | sudo apt-key add -
22
+ sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
23
+ sudo apt-get update
24
+ sudo apt-get install lxc-docker -y
25
+ SHELL
26
+ end
27
+ }
28
+ def initialize
29
+ # Nothing
30
+ end
31
+ def create(config)
32
+ # Create Vagrantfile
33
+ erb= Erubis::Eruby.new(TEMPLATE)
34
+ out = erb.result(config)
35
+ File.write "Vagrantfile", out
36
+ # vagrant up
37
+ system "vagrant up"
38
+ end
39
+
40
+ def delete(host)
41
+ #vagrant destroy -f
42
+ system "vagrant destroy -f"
43
+ #Remove Vagrantfile
44
+ system "rm Vagrantfile"
45
+ end
46
+
47
+ def list_params
48
+ say "\nMemory: RAM memory in Megabytes"
49
+ say "\nIp: Every IP in the 192.168.0.0 range"
50
+ say "\nBoxes: Every box from https://atlas.hashicorp.com"
51
+ end
52
+
53
+ private
54
+ def create_connection(config)
55
+ # nothing
56
+ end
57
+ end
@@ -1,3 +1,3 @@
1
1
  module OpenDock
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: open-dock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Lebrijo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-20 00:00:00.000000000 Z
11
+ date: 2015-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -128,6 +128,7 @@ files:
128
128
  - lib/open-dock/providers.rb
129
129
  - lib/open-dock/providers/digital_ocean.rb
130
130
  - lib/open-dock/providers/google_cloud.rb
131
+ - lib/open-dock/providers/vagrant.rb
131
132
  - lib/open-dock/version.rb
132
133
  - lib/tasks/.gitkeep
133
134
  - open-dock.gemspec