public
Description: master respository for deprec - deployment recipes for capistrano
Homepage: http://www.deprec.org/
Clone URL: git://github.com/mbailey/deprec.git
Update the default options for network settings based on
value provided for ip address.
mbailey (author)
Wed Oct 29 20:11:05 -0700 2008
commit  488a54059e028028899fed7957ce6e77a526a01e
tree    736e1f78b5a3676b972930cce92d55bbc8b8f5c0
parent  b5aeed67ba3d64fc26c511f8b89a30a8522e2649
...
4
5
6
7
 
8
9
10
11
 
12
13
14
15
16
17
 
 
 
 
 
 
18
19
20
 
 
 
21
22
23
 
 
24
25
26
27
 
28
29
30
...
33
34
35
36
 
37
38
39
...
41
42
43
 
 
 
 
 
44
45
46
...
57
58
59
 
 
 
 
 
60
61
62
...
4
5
6
 
7
8
9
10
11
12
13
 
 
 
 
 
14
15
16
17
18
19
20
 
 
21
22
23
24
 
 
25
26
27
 
28
 
29
30
31
32
...
35
36
37
 
38
39
40
41
...
43
44
45
46
47
48
49
50
51
52
53
...
64
65
66
67
68
69
70
71
72
73
74
0
@@ -4,27 +4,29 @@ Capistrano::Configuration.instance(:must_exist).load do
0
     namespace :network do
0
             
0
       set(:network_number_of_ports) { 
0
-        Capistrano::CLI.ui.ask "Number of network ports" do |q|
0
+        Capistrano::CLI.ui.ask "Number of network interfaces" do |q|
0
           q.default = 1
0
         end 
0
       }
0
       
0
+      default_network = ''
0
       set(:network_interfaces) {
0
-        foo = {}
0
-        network_number_of_ports.to_i.times do |port|
0
-          foo[port] = {}
0
-          foo[port][:address] = Capistrano::CLI.ui.ask "address" do |q|
0
-            q.default = "192.168.#{port+1}.10"
0
+        result = {}
0
+        network_number_of_ports.to_i.times do |iface|
0
+          default_network = "192.168.#{iface+1}"
0
+          result[iface] = {}
0
+          result[iface][:address] = Capistrano::CLI.ui.ask "address" do |q|
0
+            q.default = "#{default_network}.10"
0
           end
0
-          foo[port][:netmask] = Capistrano::CLI.ui.ask "netmask" do |q|
0
-            q.default = '255.255.255.0'
0
+          default_network = result[iface][:address].split('.').slice(0,3).join('.')
0
+          result[iface][:netmask] = Capistrano::CLI.ui.ask "netmask" do |q|
0
+            q.default = "255.255.255.0"
0
           end
0
-          foo[port][:broadcast] = Capistrano::CLI.ui.ask "broadcast" do |q|
0
-            q.default = "192.168.#{port+1}.255"
0
+          result[iface][:broadcast] = Capistrano::CLI.ui.ask "broadcast" do |q|
0
+            q.default = "#{default_network}.255"
0
           end
0
-
0
         end
0
-        foo
0
+        result
0
       }
0
       set(:network_hostname) { 
0
         Capistrano::CLI.ui.ask "hostname" do |q|
0
@@ -33,7 +35,7 @@ Capistrano::Configuration.instance(:must_exist).load do
0
       } 
0
       set(:network_gateway) { 
0
         Capistrano::CLI.ui.ask "default gateway" do |q|
0
-          q.default = '192.168.1.1'
0
+          q.default = "#{default_network}.1"
0
         end 
0
       }
0
       set(:network_dns_nameservers) { 
0
@@ -41,6 +43,11 @@ Capistrano::Configuration.instance(:must_exist).load do
0
           q.default = '203.8.183.1 4.2.2.1'
0
         end 
0
       }
0
+      set(:network_dns_search_path) { 
0
+        Capistrano::CLI.ui.ask "dns search domains (separated by spaces)" do |q|
0
+          q.default = nil
0
+        end 
0
+      }
0
       
0
       SYSTEM_CONFIG_FILES[:network] = [
0
 
0
@@ -57,6 +64,11 @@ Capistrano::Configuration.instance(:must_exist).load do
0
         {:template => "hostname.erb",
0
          :path => '/etc/hostname',
0
          :mode => 0644,
0
+         :owner => 'root:root'},
0
+         
0
+        {:template => "resolv.conf.erb",
0
+         :path => '/etc/resolv.conf',
0
+         :mode => 0644,
0
          :owner => 'root:root'}
0
     
0
        ]

Comments