vagrant-tiktalik 0.0.1 → 0.0.2

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: 1e2eae2923158eb685917eacadbb737ec8ee747c
4
- data.tar.gz: f4970f0c612f94007f6100eb6d0f7bd874e864d9
3
+ metadata.gz: f456716376d5e63c7b37333c0ccc1f639bdd53cf
4
+ data.tar.gz: 407f7c942914a6f10a74f873381bdf68e924b67b
5
5
  SHA512:
6
- metadata.gz: 0231889c46e50da2c64f7b6c7db035f338313ae0dce1fc24d427e238e659d9bb98d3602f9e2f36ca23d5d99a78fb079f1675fd47316778b2061bc69d8243b025
7
- data.tar.gz: c444050382f5ffe76320fe08993e1dd17fe634059a8f0615d9302f231be14505a24ba5e39745267a657b34864e380a06c44e3a46e72f42a79717eaabf325b1df
6
+ metadata.gz: 1466932aa634bfc17b8f460dd3385988c70b44fe280a4d7b9762471690bfec28425453d0e875ea56964a724cdaa413953869528ce32f64cd8afca41da3bc0db1
7
+ data.tar.gz: f7219b9d4a3797d94a9f050948bdf3f55e52c9b2bbe21044e36b2e7d9cbba337ad2f8e734673b1dd0e14a2edc281d6ee55ccfd5bdd43987728012176c9db375c
data/README.md CHANGED
@@ -1,84 +1,127 @@
1
- # This is Vagrant Tiktalik.com Provider WORK IN PROGRESS
1
+ # Vagrant Tiktalik.com Provider
2
2
 
3
- Our plugin is based on excellent Vagrant AWS Provider plugin.
4
- We'll come up with our own README file but for now please read the original one provided below.
5
- Don't forget you that our plugin is called vagrant-tiktalik so please adapt commands accordingly.
6
-
7
- ``
8
- $ vagrant plugin install vagrant-tiktalik
9
- ...
10
- $ vagrant up --provider=tiktalik
11
- ``
12
-
13
- # Vagrant AWS Provider
14
-
15
- This is a [Vagrant](http://www.vagrantup.com) 1.2+ plugin that adds an [AWS](http://aws.amazon.com)
16
- provider to Vagrant, allowing Vagrant to control and provision machines in
17
- EC2 and VPC.
3
+ This is a [Vagrant](http://www.vagrantup.com) 1.2+ plugin that adds an [Tiktalik.com](https://tiktalik.com)
4
+ provider to Vagrant, allowing Vagrant to control and provision machines in Tiktalik cloud.
18
5
 
19
6
  **NOTE:** This plugin requires Vagrant 1.2+,
20
7
 
21
8
  ## Features
22
9
 
23
- * Boot EC2 or VPC instances.
10
+ * Boot Tiktalik instances.
24
11
  * SSH into the instances.
25
- * Provision the instances with any built-in Vagrant provisioner.
12
+ * Provision the instances with any built-in Vagrant provisioner, ie. ansible
26
13
  * Minimal synced folder support via `rsync`.
27
- * Define region-specifc configurations so Vagrant can manage machines
28
- in multiple regions.
29
14
 
30
15
  ## Usage
31
16
 
32
- Install using standard Vagrant 1.1+ plugin installation methods. After
33
- installing, `vagrant up` and specify the `aws` provider. An example is
34
- shown below.
17
+ Install using standard Vagrant 1.1+ plugin installation methods.
35
18
 
36
19
  ```
37
- $ vagrant plugin install vagrant-aws
38
- ...
39
- $ vagrant up --provider=aws
40
- ...
20
+ $ vagrant plugin install vagrant-tiktalik
21
+
22
+ Installing the 'vagrant-tiktalik' plugin. This can take a few minutes...
23
+ Installed the plugin 'vagrant-tiktalik (0.0.1)'!
41
24
  ```
42
25
 
43
- Of course prior to doing this, you'll need to obtain an AWS-compatible
26
+ After installing, run `vagrant up` and specify the `tiktalik` provider.
27
+
28
+ ```
29
+ $ vagrant up --provider=tiktalik
30
+
31
+ Bringing machine 'default' up with 'tiktalik' provider...
32
+ [default] Launching an instance with the following settings...
33
+ [default] -- Image: 4a2b3e72-47f1-4e88-b482-1834478ade28
34
+ [default] -- Hostname: vagrant-default
35
+ [default] -- Size: 0.5
36
+ [default] -- SSH key: d5c6b671-6cba-41fe-9020-5d5e1dda85f9
37
+ [default] -- Networks: ["212c7fd1-6018-41ff-9a01-a37956517237"]
38
+ [default] Waiting for instance to become "ready"...
39
+ [default] Waiting for SSH to become available...
40
+ [default] Machine is booted and ready for use!
41
+ [default] Rsyncing folder: /root/f/ => /vagrant
42
+ ```
43
+
44
+ Of course prior to doing this, you'll need to obtain an Tiktalik-compatible
44
45
  box file for Vagrant.
45
46
 
47
+ ## SSL issues
48
+
49
+ If you get the following error:
50
+
51
+ ```
52
+ connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Faraday::Error::ConnectionFailed)
53
+ ```
54
+
55
+ It means that you are missing root certificates, at least ruby is missing them.
56
+
57
+ This problem has been described on Faraday's (a vagrant-tiktalik and tiktalik-ruby dependency) wiki:
58
+
59
+ [https://github.com/lostisland/faraday/wiki/Setting-up-SSL-certificates](https://github.com/lostisland/faraday/wiki/Setting-up-SSL-certificates)
60
+
61
+ The quick fix is to:
62
+
63
+ * set SSL_CERT_FILE environment variable and point it to Certificate Authority (CA) file. Please note that CA file might not be installed on your system and the actuall file path might differ!
64
+
65
+ ```
66
+ $ SSL_CERT_FILE=/opt/vagrant/embedded/cacert.pem vagrant status
67
+ ```
68
+ * set CA file path as a provider configuration variable in Vagrantfile. Please see sample configuration file below.
69
+
70
+
46
71
  ## Quick Start
47
72
 
48
73
  After installing the plugin (instructions above), the quickest way to get
49
- started is to actually use a dummy AWS box and specify all the details
74
+ started is to actually use a dummy Tiktalik box and specify all the details
50
75
  manually within a `config.vm.provider` block. So first, add the dummy
51
76
  box using any name you want:
52
77
 
53
78
  ```
54
- $ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
55
- ...
79
+ $ vagrant box add dummy https://github.com/tiktalik-cloud/vagrant-tiktalik/raw/master/box/tiktalik.box
80
+
81
+ Downloading or copying the box...
82
+ Extracting box...e: 0/s, Estimated time remaining: --:--:--)
83
+ Successfully added box 'dummy' with provider 'tiktalik'!
56
84
  ```
57
85
 
58
86
  And then make a Vagrantfile that looks like the following, filling in
59
87
  your information where necessary.
60
88
 
61
- ```
62
- Vagrant.configure("2") do |config|
63
- config.vm.box = "dummy"
64
-
65
- config.vm.provider :aws do |aws, override|
66
- aws.access_key_id = "YOUR KEY"
67
- aws.secret_access_key = "YOUR SECRET KEY"
68
- aws.keypair_name = "KEYPAIR NAME"
69
-
70
- aws.ami = "ami-7747d01e"
71
-
72
- override.ssh.username = "ubuntu"
73
- override.ssh.private_key_path = "PATH TO YOUR PRIVATE KEY"
89
+ ```ruby
90
+ Vagrant.configure('2') do |config|
91
+ config.vm.provider :tiktalik do |provider, override|
92
+ # path to private ssh key, public one has to me uploaded to
93
+ # tiktalik.com and it's UUID provided below as `provider.ssh_key`
94
+ # please note that DSA key will work just fine
95
+ override.ssh.private_key_path = '~/.ssh/id_rsa'
96
+
97
+ override.vm.box = 'tiktalik'
98
+
99
+ # hostname for your instance, ie vagrant-host.youraccount.p2.tiktalik.com
100
+ # override.vm.hostname = 'vagrant-host'
101
+
102
+ # api credentials, get them from https://tiktalik.com/panel/#apikeys
103
+ provider.api_key = 'api key'
104
+ provider.api_secret = 'api secret'
105
+
106
+ # system image UUID, this one is for Ubuntu 12.04.3 LTS 64-bit
107
+ # get more ids from https://tiktalik.com/panel/#templates
108
+ provider.image = '4a2b3e72-47f1-4e88-b482-1834478ade28'
109
+
110
+ # in case of SSL related problems (ie. ruby 1.9 missing CA file)
111
+ # uncomment following line. don't forget to provide valid CA file path.
112
+ # on Ubuntu, CA file comes with Vagrant deb package
113
+ # provider.ca_file = '/opt/vagrant/embedded/cacert.pem'
114
+
115
+ # your SSH key UUID, get one from https://tiktalik.com/panel/#sshkeys
116
+ provider.ssh_key = 'here goes ssh key uuid'
74
117
  end
75
118
  end
76
119
  ```
77
120
 
78
- And then run `vagrant up --provider=aws`.
121
+ And then run `vagrant up --provider=tiktalik`.
79
122
 
80
- This will start an Ubuntu 12.04 instance in the us-east-1 region within
81
- your account. And assuming your SSH information was filled in properly
123
+ This will start an Ubuntu 12.04 instance within your account.
124
+ And assuming your SSH information was filled in properly
82
125
  within your Vagrantfile, SSH and provisioning will work as well.
83
126
 
84
127
  Note that normally a lot of this boilerplate is encoded within the box
@@ -88,143 +131,41 @@ no preconfigured defaults.
88
131
  If you have issues with SSH connecting, make sure that the instances
89
132
  are being launched with a security group that allows SSH access.
90
133
 
91
- ## Box Format
92
-
93
- Every provider in Vagrant must introduce a custom box format. This
94
- provider introduces `aws` boxes. You can view an example box in
95
- the [example_box/ directory](https://github.com/mitchellh/vagrant-aws/tree/master/example_box).
96
- That directory also contains instructions on how to build a box.
97
-
98
- The box format is basically just the required `metadata.json` file
99
- along with a `Vagrantfile` that does default settings for the
100
- provider-specific configuration for this provider.
101
-
102
134
  ## Configuration
103
135
 
104
136
  This provider exposes quite a few provider-specific configuration options:
105
137
 
106
- * `access_key_id` - The access key for accessing AWS
107
- * `ami` - The AMI id to boot, such as "ami-12345678"
108
- * `availability_zone` - The availability zone within the region to launch
109
- the instance. If nil, it will use the default set by Amazon.
110
- * `instance_ready_timeout` - The number of seconds to wait for the instance
111
- to become "ready" in AWS. Defaults to 120 seconds.
112
- * `instance_type` - The type of instance, such as "m1.small". The default
113
- value of this if not specified is "m1.small".
114
- * `keypair_name` - The name of the keypair to use to bootstrap AMIs
115
- which support it.
116
- * `private_ip_address` - The private IP address to assign to an instance
117
- within a [VPC](http://aws.amazon.com/vpc/)
118
- * `region` - The region to start the instance in, such as "us-east-1"
119
- * `secret_access_key` - The secret access key for accessing AWS
120
- * `security_groups` - An array of security groups for the instance. If this
121
- instance will be launched in VPC, this must be a list of security group
122
- IDs.
123
- * `subnet_id` - The subnet to boot the instance into, for VPC.
124
- * `tags` - A hash of tags to set on the machine.
125
- * `use_iam_profile` - If true, will use [IAM profiles](http://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html)
126
- for credentials.
127
-
128
- These can be set like typical provider-specific configuration:
129
-
130
- ```ruby
131
- Vagrant.configure("2") do |config|
132
- # ... other stuff
133
-
134
- config.vm.provider :aws do |aws|
135
- aws.access_key_id = "foo"
136
- aws.secret_access_key = "bar"
137
- end
138
- end
139
- ```
140
-
141
- In addition to the above top-level configs, you can use the `region_config`
142
- method to specify region-specific overrides within your Vagrantfile. Note
143
- that the top-level `region` config must always be specified to choose which
144
- region you want to actually use, however. This looks like this:
145
-
146
- ```ruby
147
- Vagrant.configure("2") do |config|
148
- # ... other stuff
149
-
150
- config.vm.provider :aws do |aws|
151
- aws.access_key_id = "foo"
152
- aws.secret_access_key = "bar"
153
- aws.region = "us-east-1"
154
-
155
- # Simple region config
156
- aws.region_config "us-east-1", :ami => "ami-12345678"
157
-
158
- # More comprehensive region config
159
- aws.region_config "us-west-2" do |region|
160
- region.ami = "ami-87654321"
161
- region.keypair_name = "company-west"
162
- end
163
- end
164
- end
165
- ```
166
-
167
- The region-specific configurations will override the top-level
168
- configurations when that region is used. They otherwise inherit
169
- the top-level configurations, as you would probably expect.
138
+ * `image` - System image UUID, full list available at:
139
+ https://tiktalik.com/panel/#templates
140
+ * `size` - Instance size, ie. 0.25, 0.5, 1, ...
141
+ Check out our pricing list for other sizes:
142
+ https://tiktalik.com/pricing#unit/2
143
+ * `ssh_key` - SSH key UUID. Key has to be uploaded beforehand.
144
+ Admin panel URL is https://tiktalik.com/panel/#sshkeys
145
+ * `api_key` - API key and ...
146
+ * `api_secret` - ... secret are required API creditentials.
147
+ Go to admin panel to get them: https://tiktalik.com/panel/#apikeys
170
148
 
171
149
  ## Networks
172
150
 
173
151
  Networking features in the form of `config.vm.network` are not
174
- supported with `vagrant-aws`, currently. If any of these are
152
+ supported with `vagrant-tiktalik`, currently. If any of these are
175
153
  specified, Vagrant will emit a warning, but will otherwise boot
176
- the AWS machine.
154
+ the Tiktalik instance.
177
155
 
178
156
  ## Synced Folders
179
157
 
180
158
  There is minimal support for synced folders. Upon `vagrant up`,
181
- `vagrant reload`, and `vagrant provision`, the AWS provider will use
159
+ `vagrant reload`, and `vagrant provision`, the Tiktalik provider will use
182
160
  `rsync` (if available) to uni-directionally sync the folder to
183
161
  the remote machine over SSH.
184
162
 
185
163
  This is good enough for all built-in Vagrant provisioners (shell,
186
164
  chef, and puppet) to work!
187
165
 
188
- ## Other Examples
189
-
190
- ### Tags
191
-
192
- To use tags, simply define a hash of key/value for the tags you want to associate to your instance, like:
193
-
194
- ```ruby
195
- Vagrant.configure("2") do |config|
196
- # ... other stuff
197
-
198
- config.vm.provider "aws" do |aws|
199
- aws.tags = {
200
- 'Name' => 'Some Name',
201
- 'Some Key' => 'Some Value'
202
- }
203
- end
204
- end
205
- ```
206
-
207
- ### User data
208
-
209
- You can specify user data for the instance being booted.
210
-
211
- ```ruby
212
- Vagrant.configure("2") do |config|
213
- # ... other stuff
214
-
215
- config.vm.provider "aws" do |aws|
216
- # Option 1: a single string
217
- aws.user_data = "#!/bin/bash\necho 'got user data' > /tmp/user_data.log\necho"
218
-
219
- # Option 2: use a file
220
- aws.user_data = File.read("user_data.txt")
221
- end
222
- end
223
- ```
224
-
225
166
  ## Development
226
167
 
227
- To work on the `vagrant-aws` plugin, clone this repository out, and use
168
+ To work on the `vagrant-tiktalik` plugin, clone this repository out, and use
228
169
  [Bundler](http://gembundler.com) to get the dependencies:
229
170
 
230
171
  ```
@@ -242,9 +183,13 @@ the plugin without installing it into your Vagrant environment by just
242
183
  creating a `Vagrantfile` in the top level of this directory (it is gitignored)
243
184
  and add the following line to your `Vagrantfile`
244
185
  ```ruby
245
- Vagrant.require_plugin "vagrant-aws"
186
+ Vagrant.require_plugin "vagrant-tiktalik"
246
187
  ```
247
188
  Use bundler to execute Vagrant:
248
189
  ```
249
- $ bundle exec vagrant up --provider=aws
190
+ $ bundle exec vagrant up --provider=tiktalik
250
191
  ```
192
+
193
+ ## Thanks
194
+
195
+ Our plugin is based on excellent Vagrant AWS Provider plugin.
@@ -1,3 +1,3 @@
1
1
  {
2
- "provider": "tiktalik.com"
2
+ "provider": "tiktalik"
3
3
  }
Binary file
@@ -18,6 +18,7 @@ module VagrantPlugins
18
18
  t = Tiktalik
19
19
  t.api_key = @config.api_key
20
20
  t.api_secret_key = @config.api_secret
21
+ t.ca_file = @config.ca_file
21
22
 
22
23
  i = Tiktalik::Computing::Instance
23
24
  instance = i.find env[:machine].id
@@ -18,6 +18,7 @@ module VagrantPlugins
18
18
  t = Tiktalik
19
19
  t.api_key = @config.api_key
20
20
  t.api_secret_key = @config.api_secret
21
+ t.ca_file = @config.ca_file
21
22
 
22
23
  i = Tiktalik::Computing::Instance
23
24
  instance = i.find env[:machine].id
@@ -24,6 +24,7 @@ module VagrantPlugins
24
24
  t = Tiktalik
25
25
  t.api_key = @config.api_key
26
26
  t.api_secret_key = @config.api_secret
27
+ t.ca_file = @config.ca_file
27
28
 
28
29
  i = Tiktalik::Computing::Instance
29
30
  instance = i.find machine.id
@@ -20,6 +20,7 @@ module VagrantPlugins
20
20
  t = Tiktalik
21
21
  t.api_key = @config.api_key
22
22
  t.api_secret_key = @config.api_secret
23
+ t.ca_file = @config.ca_file
23
24
 
24
25
  env[:machine_state_id] = :not_created
25
26
 
@@ -43,6 +43,7 @@ module VagrantPlugins
43
43
  t = Tiktalik
44
44
  t.api_key = @config.api_key
45
45
  t.api_secret_key = @config.api_secret
46
+ t.ca_file = @config.ca_file
46
47
 
47
48
  begin
48
49
  networks = []
@@ -21,6 +21,7 @@ module VagrantPlugins
21
21
  t = Tiktalik
22
22
  t.api_key = @config.api_key
23
23
  t.api_secret_key = @config.api_secret
24
+ t.ca_file = @config.ca_file
24
25
 
25
26
  i = Tiktalik::Computing::Instance
26
27
  instance = i.find env[:machine].id
@@ -8,6 +8,7 @@ module VagrantPlugins
8
8
  attr_accessor :size
9
9
  attr_accessor :ssh_key
10
10
  attr_accessor :api_secret
11
+ attr_accessor :ca_file
11
12
  #attr_accessor :network
12
13
 
13
14
  def initialize
@@ -16,6 +17,7 @@ module VagrantPlugins
16
17
  @size = UNSET_VALUE
17
18
  @ssh_key = UNSET_VALUE
18
19
  @api_secret = UNSET_VALUE
20
+ @ca_file = UNSET_VALUE
19
21
  #@network = UNSET_VALUE
20
22
  end
21
23
 
@@ -25,6 +27,7 @@ module VagrantPlugins
25
27
  @size = 0.5 if @size == UNSET_VALUE
26
28
  @ssh_key = nil if @ssh_key == UNSET_VALUE
27
29
  @api_secret = ENV['TIKTALIK_API_SECRET'] if @api_secret == UNSET_VALUE
30
+ @ca_file = nil if @ca_file == UNSET_VALUE
28
31
  #@network = nil if @network == UNSET_VALUE
29
32
  end
30
33
 
@@ -19,12 +19,12 @@ module VagrantPlugins
19
19
  machines in Tiktalik.com.
20
20
  DESC
21
21
 
22
- config(:"tiktalik.com", :provider) do
22
+ config(:tiktalik, :provider) do
23
23
  require_relative "config"
24
24
  Config
25
25
  end
26
26
 
27
- provider(:"tiktalik.com", parallel: true) do
27
+ provider(:tiktalik, parallel: true) do
28
28
  # Setup logging and i18n
29
29
  setup_logging
30
30
  setup_i18n
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module TiktalikVagrant
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.rubyforge_project = "vagrant-tiktalik"
17
17
 
18
18
  # s.add_runtime_dependency "fog", "~> 1.10.0"
19
- s.add_runtime_dependency "tiktalik", "~> 1.0.3"
19
+ s.add_runtime_dependency "tiktalik", "~> 1.0.4"
20
20
 
21
21
  s.add_development_dependency "rake"
22
22
  s.add_development_dependency "rspec-core", "~> 2.12.2"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-tiktalik
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksander Piotrowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-03 00:00:00.000000000 Z
11
+ date: 2013-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tiktalik
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.3
19
+ version: 1.0.4
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: 1.0.3
26
+ version: 1.0.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement