engineyard-dnsimple 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +0 -1
- data/ChangeLog.md +4 -0
- data/README.md +13 -3
- data/engineyard-dnsimple.gemspec +1 -1
- data/features/assign_dns_to_environment.feature +14 -1
- data/features/support/dnsimple.rb +2 -1
- data/lib/engineyard-dnsimple/cli.rb +4 -4
- data/lib/engineyard-dnsimple/version.rb +1 -1
- data/posts/engineyard-2011-05-24.md +34 -0
- metadata +5 -4
data/.travis.yml
CHANGED
data/ChangeLog.md
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Simple DNS for Engine Yard AppCloud environments
|
2
2
|
|
3
|
+
<img src="https://img.skitch.com/20110523-x5mhutfr8r79parhuq7r44sqma.png">
|
4
|
+
|
5
|
+
|
3
6
|
Currently creates A records for a domain (.myapp.com and www.myapp.com) to
|
4
7
|
point to the public IP of an AppCloud environment.
|
5
8
|
|
@@ -20,6 +23,9 @@ like the `ey` CLI itself:
|
|
20
23
|
|
21
24
|
$ ey-dnsimple assign myapp.com -e myapp_production
|
22
25
|
|
26
|
+
If .myapp.com or www.myapp.com already exist you will be prompted to override them.
|
27
|
+
You can force the override with the `--override` or `-o` flag.
|
28
|
+
|
23
29
|
## Setup
|
24
30
|
|
25
31
|
$ gem install engineyard-dnsimple
|
@@ -48,10 +54,14 @@ Test you have DNSimple working:
|
|
48
54
|
|
49
55
|
## Development
|
50
56
|
|
51
|
-
|
57
|
+
[![Build Status](http://travis-ci.org/engineyard/engineyard-dnsimple.png)](http://travis-ci.org/engineyard/engineyard-dnsimple)
|
58
|
+
|
59
|
+
The test suite is purely cucumber scenarios. No rspec tests are being used. There are credentials for http://test.dnsimple.com built into the test suite. You should not have to do anything to run the tests except:
|
52
60
|
|
53
|
-
|
54
|
-
|
61
|
+
git clone git://github.com/engineyard/engineyard-dnsimple.git
|
62
|
+
cd engineyard-dnsimple
|
63
|
+
bundle
|
64
|
+
bundle exec rake
|
55
65
|
|
56
66
|
## License
|
57
67
|
|
data/engineyard-dnsimple.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.authors = ["Dr Nic Williams"]
|
10
10
|
s.email = ["drnicwilliams@gmail.com"]
|
11
|
-
s.homepage = ""
|
11
|
+
s.homepage = "https://github.com/engineyard/engineyard-dnsimple#readme"
|
12
12
|
s.summary = %q{Configure your Engine Yard AppCloud environment and your DNSimple domain.}
|
13
13
|
s.description = %q{Easily configure your DNS with Engine Yard AppCloud via DNSimple.}
|
14
14
|
|
@@ -31,9 +31,9 @@ Feature: Assign DNS to environment IP address
|
|
31
31
|
Fetching AppCloud environment information...
|
32
32
|
Found AppCloud environment giblets on account main with IP 174.129.7.113
|
33
33
|
Deleted \d+ from myapp.com
|
34
|
-
Deleted \d+ from myapp.com
|
35
34
|
Assigning myapp.com --> 174.129.7.113 (main/giblets)
|
36
35
|
Created A record for myapp.com (id:\d+)
|
36
|
+
Deleted \d+ from myapp.com
|
37
37
|
Assigning www.myapp.com --> 174.129.7.113 (main/giblets)
|
38
38
|
Created A record for myapp.com (id:\d+)
|
39
39
|
Complete!
|
@@ -42,5 +42,18 @@ Feature: Assign DNS to environment IP address
|
|
42
42
|
www.myapp.com (A)-> 174.129.7.113 (ttl:60, id:\d+)
|
43
43
|
"""
|
44
44
|
|
45
|
+
Scenario: Assign subdomain A Record to an environment
|
46
|
+
When I run local executable "ey-dnsimple" with arguments "assign myapp.com staging --account main --environment giblets"
|
47
|
+
Then I should see matching
|
48
|
+
"""
|
49
|
+
Fetching AppCloud environment information...
|
50
|
+
Found AppCloud environment giblets on account main with IP 174.129.7.113
|
51
|
+
Assigning staging.myapp.com --> 174.129.7.113 (main/giblets)
|
52
|
+
Created A record for myapp.com (id:\d+)
|
53
|
+
Complete!
|
54
|
+
Found 1 records for myapp.com
|
55
|
+
staging.myapp.com (A)-> 174.129.7.113 (ttl:60, id:\d+)
|
56
|
+
"""
|
57
|
+
|
45
58
|
|
46
59
|
|
@@ -19,12 +19,12 @@ module EngineYard
|
|
19
19
|
end
|
20
20
|
|
21
21
|
|
22
|
-
desc "assign
|
22
|
+
desc "assign DOMAIN [NAME]", "Assign DNS domain/tld (or name.tld) to your AppCloud environment"
|
23
23
|
method_option :verbose, :aliases => ["-V"], :desc => "Display more output"
|
24
24
|
method_option :environment, :aliases => ["-e"], :desc => "Environment in which to deploy this application", :type => :string
|
25
25
|
method_option :account, :aliases => ["-c"], :desc => "Name of the account you want to deploy in"
|
26
26
|
method_option :override, :aliases => ["-o"], :type => :boolean, :desc => "Override DNSimple records if they already exist"
|
27
|
-
def assign(domain)
|
27
|
+
def assign(domain, name = "")
|
28
28
|
say "Fetching AppCloud environment information..."; $stdout.flush
|
29
29
|
|
30
30
|
environment = fetch_environment(options[:environment], options[:account])
|
@@ -44,8 +44,8 @@ module EngineYard
|
|
44
44
|
$stdout.flush
|
45
45
|
|
46
46
|
::DNSimple::Client.load_credentials_if_necessary
|
47
|
-
assign_dns(account_name, env_name, domain, public_ip,
|
48
|
-
assign_dns(account_name, env_name, domain, public_ip, "www", options[:override])
|
47
|
+
assign_dns(account_name, env_name, domain, public_ip, name, options[:override])
|
48
|
+
assign_dns(account_name, env_name, domain, public_ip, "www", options[:override]) if name == ""
|
49
49
|
|
50
50
|
say "Complete!", :green
|
51
51
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Simple DNS for AppCloud with DNSimple
|
2
|
+
|
3
|
+
For me, one of the things I liked to do with a new AppCloud application is to attached a pretty domain. The default AWS EC2 URL doesn't glorify my fine efforts.
|
4
|
+
|
5
|
+
I've started using the new [DNSimple](http://dnsimple.com/) as my DNS registrar and name server, and I believe an increasing number of AppCloud customers are too.
|
6
|
+
|
7
|
+
To make setting up DNS easier with AppCloud, we've released the `ey-dnsimple` command line application.
|
8
|
+
|
9
|
+
It's really quite easy to use:
|
10
|
+
|
11
|
+
1. Register your application's domain with [DNSimple](http://dnsimple.com/)
|
12
|
+
2. Transfer your domain to DNSimple or change the name servers to ns1.dnsimple.com (ns2, ns3, etc)
|
13
|
+
3. Install and run the command line application:
|
14
|
+
|
15
|
+
$ gem install engineyard-dnsimple
|
16
|
+
$ cd path/to/my/app
|
17
|
+
$ ey-dnsimple apply myapp.com
|
18
|
+
Assigning myapp.com --> 1.2.3.4 (drnic/myapp_production)
|
19
|
+
Assigning www.myapp.com --> 1.2.3.4 (drnic/myapp_production)
|
20
|
+
|
21
|
+
Found 2 records for myapp.com
|
22
|
+
.myapp.com (A)-> 1.2.3.4 (ttl:, id:12345)
|
23
|
+
www.myapp.com (A)-> 1.2.3.4 (ttl:, id:12346)
|
24
|
+
|
25
|
+
If you have previously assigned the domain records to another host, it will prompt you to change them.
|
26
|
+
|
27
|
+
If there is any confusion about which AppCloud environment is hosting your application, it will show you your options and then you can use the `--environment` and `--account` options to be more specific:
|
28
|
+
|
29
|
+
$ ey-dnsimple apply myapp.com --environment myapp_production
|
30
|
+
$ ey-dnsimple apply myapp.com staging --environment myapp_staging
|
31
|
+
|
32
|
+
Hopefully this tool makes it much easier to setup or change DNS for your AppCloud environments. Let us know in the comments or in the project's [Issues](https://github.com/engineyard/engineyard-dnsimple/issues) if you love it, find bugs or have feature requests.
|
33
|
+
|
34
|
+
The source and instructions for the project is [available on GitHub](https://github.com/engineyard/engineyard-dnsimple#readme).
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: engineyard-dnsimple
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dr Nic Williams
|
@@ -227,9 +227,10 @@ files:
|
|
227
227
|
- lib/engineyard-dnsimple.rb
|
228
228
|
- lib/engineyard-dnsimple/cli.rb
|
229
229
|
- lib/engineyard-dnsimple/version.rb
|
230
|
+
- posts/engineyard-2011-05-24.md
|
230
231
|
- spec/spec_helper.rb
|
231
232
|
has_rdoc: true
|
232
|
-
homepage:
|
233
|
+
homepage: https://github.com/engineyard/engineyard-dnsimple#readme
|
233
234
|
licenses: []
|
234
235
|
|
235
236
|
post_install_message:
|