|
@@ -5,11 +5,10 @@ import urllib2
|
|
import sys
|
|
import sys
|
|
from jinja2 import Template
|
|
from jinja2 import Template
|
|
|
|
|
|
-URL = 'http://169.254.169.254/latest/user-data'
|
|
|
|
-
|
|
|
|
try:
|
|
try:
|
|
data = json.load(urllib2.urlopen('http://169.254.169.254/latest/user-data'))
|
|
data = json.load(urllib2.urlopen('http://169.254.169.254/latest/user-data'))
|
|
- ip = urllib2.urlopen('http://169.254.169.254/latest/user-data').rstrip()
|
|
|
|
|
|
+ ip = urllib2.urlopen('http://169.254.169.254/latest/meta-data/local-ipv4').read()
|
|
|
|
+
|
|
except:
|
|
except:
|
|
print >> sys.stderr, 'Was not able to connect to the Amazon API'
|
|
print >> sys.stderr, 'Was not able to connect to the Amazon API'
|
|
sys.exit(2)
|
|
sys.exit(2)
|
|
@@ -26,3 +25,37 @@ zt = Template(zone_template)
|
|
main_config = open("/etc/bind/zones.consul", "w")
|
|
main_config = open("/etc/bind/zones.consul", "w")
|
|
main_config.write(zt.render(user_data=data, ipaddr=ip))
|
|
main_config.write(zt.render(user_data=data, ipaddr=ip))
|
|
main_config.close()
|
|
main_config.close()
|
|
|
|
+
|
|
|
|
+local_config = open("/etc/bind/named.conf.local", "w")
|
|
|
|
+local_config.write("//Scripted Configure\ninclude \"/etc/bind/zones.consul\";")
|
|
|
|
+local_config.close()
|
|
|
|
+
|
|
|
|
+options_template="""
|
|
|
|
+options {
|
|
|
|
+ directory "/var/cache/bind";
|
|
|
|
+ allow-query { any; };
|
|
|
|
+ allow-transfer { localhost; };
|
|
|
|
+ recursion yes;
|
|
|
|
+ allow-recursion { any; };
|
|
|
|
+ forward only;
|
|
|
|
+ forwarders {
|
|
|
|
+{% for forwarder in forwarders %}
|
|
|
|
+ {{ forwarder }};
|
|
|
|
+{% endfor %}
|
|
|
|
+ };
|
|
|
|
+ dnssec-validation no;
|
|
|
|
+ dnssec-enable no;
|
|
|
|
+ auth-nxdomain no; # conform to RFC1035
|
|
|
|
+ listen-on-v6 { any; };
|
|
|
|
+};
|
|
|
|
+"""
|
|
|
|
+ot = Template(options_template)
|
|
|
|
+
|
|
|
|
+if 'upstream_dns' in data:
|
|
|
|
+ myfowarders = data['upstream_dns'].split(",")
|
|
|
|
+else:
|
|
|
|
+ myfowarders = ['8.8.8.8', '8.8.4.4']
|
|
|
|
+
|
|
|
|
+options_config = open("/etc/bind/named.conf.options", "w")
|
|
|
|
+main_config.write(ot.render(forwarders=myfowarders))
|
|
|
|
+options_config.close()
|