equal
deleted
inserted
replaced
1 #!/bin/bash |
1 #!/bin/bash |
2 # vim: set ft=sh : |
2 # vim: set ft=sh : |
3 |
3 |
4 set -ue |
4 # Bootstrap |
5 |
|
6 if [ $0 == './update' ]; then |
5 if [ $0 == './update' ]; then |
7 SRV=$(pwd) |
6 SRV=$(pwd) |
8 OPT=./opt |
7 OPT=./opt |
9 else |
8 else |
10 SRV=${SRV:-/srv/dns} |
9 SRV=${SRV:-/srv/dns} |
11 OPT=${SRV:-/srv/dns/opt} |
10 OPT=${SRV:-/srv/dns/opt} |
12 cd $SRV |
11 cd $SRV |
13 fi |
12 fi |
14 |
13 |
15 # charset for files under etc/ |
|
16 CHARSET='utf-8' |
|
17 |
|
18 # External bins |
|
19 NAMED_CHECKZONE=/usr/sbin/named-checkzone |
|
20 |
|
21 DHCPD=/usr/sbin/dhcpd |
|
22 DHCPD_CONF=/etc/dhcp/dhcpd.conf |
|
23 DHCPD_INIT=/etc/init.d/isc-dhcp-server |
|
24 |
|
25 HG=/usr/bin/hg |
|
26 HG_ARGS=(--config trusted.users=root) |
|
27 |
|
28 RNDC=/usr/sbin/rndc |
|
29 RNDC_KEY=/etc/bind/rndc.key |
|
30 |
|
31 # Library includes |
|
32 source lib/update |
14 source lib/update |
33 |
15 |
34 ## Flags |
|
35 # set by do_reload_zone if zone data has actually been reloaded |
|
36 RELOAD_ZONES= |
|
37 |
|
38 ## Site settings, used as arguments to scripts |
|
39 # Origin domain to generate reverse records for in --reverse-zone |
|
40 REVERSE_DOMAIN=paivola.fi |
|
41 |
|
42 ## Do things |
|
43 function update { |
16 function update { |
44 log "Testing hosts..." |
17 log "Testing hosts..." |
45 for hosts in $(list_files etc/hosts); do |
18 for hosts in $(list_files etc/hosts); do |
46 log_warn "TODO: check_hosts $hosts" |
19 log_warn "TODO: check_hosts $hosts" |
47 done |
20 done |
84 |
57 |
85 log "Updating DHCP confs..." |
58 log "Updating DHCP confs..." |
86 for conf in $(list_files etc/dhcp); do |
59 for conf in $(list_files etc/dhcp); do |
87 update_dhcp_conf "var/dhcp/$conf" "etc/dhcp/$conf" |
60 update_dhcp_conf "var/dhcp/$conf" "etc/dhcp/$conf" |
88 done |
61 done |
89 |
62 } |
|
63 |
|
64 function deploy { |
90 ## Check |
65 ## Check |
91 log "Testing zones..." |
66 log "Testing zones..." |
92 for zone in $(list_files etc/zones); do |
67 for zone in $(list_files etc/zones); do |
93 check_zone "var/zones/$zone" $zone |
68 check_zone "var/zones/$zone" $zone |
94 done |
69 done |
96 log "Testing DHCP confs..." |
71 log "Testing DHCP confs..." |
97 for conf in var/dhcp/*.conf; do |
72 for conf in var/dhcp/*.conf; do |
98 check_dhcp $conf |
73 check_dhcp $conf |
99 done |
74 done |
100 |
75 |
101 ## Deploy |
|
102 log "Reload zones..." |
76 log "Reload zones..." |
103 reload_zones |
77 reload_zones |
104 |
78 |
105 log "Reload dhcp..." |
79 log "Reload dhcp..." |
106 reload_dhcp |
80 reload_dhcp |
133 ensure_dir $dir |
107 ensure_dir $dir |
134 done |
108 done |
135 |
109 |
136 ## Go |
110 ## Go |
137 update |
111 update |
|
112 deploy |
138 } |
113 } |
139 |
114 |
140 main "$@" |
115 main "$@" |