| #!/bin/bash |
| # ---------------------------------------------------------------------------- |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| # ---------------------------------------------------------------------------- |
| |
| set -e |
| |
| # See http://www.zytrax.com/books/dns/ch7/address_match_list.html |
| UPDATE_ADDR_LIST=${UPDATE_ADDR_LIST:-none} |
| |
| export REV_IP_ADDR=$(echo $IP_ADDR | awk -F . '{print $4 "." $3 "." $2 "." $1}') |
| |
| echo ============================= |
| echo Environment Variable Settings |
| echo ============================= |
| echo Setting DOMAIN=$DOMAIN |
| echo Setting IP_ADDR=$IP_ADDR |
| echo Setting UPDATE_ADDR_LIST=$UPDATE_ADDR_LIST |
| echo ========================= |
| |
| cp /etc/bind/zone_template /var/cache/bind/db.$DOMAIN |
| |
| sed -i "s/@DOMAIN@/$DOMAIN/g" /var/cache/bind/db.$DOMAIN |
| sed -i "s/@IP_ADDR@/$IP_ADDR/g" /var/cache/bind/db.$DOMAIN |
| |
| cat > /etc/bind/named.conf.local <<EOF |
| zone "$DOMAIN" in { |
| type master; |
| file "db.$DOMAIN"; |
| allow-update {$UPDATE_ADDR_LIST;}; |
| }; |
| EOF |
| |
| # TODO: will server start with IPV6 enabled? |
| #sed -i 's/OPTIONS="-u bind"/OPTIONS="-u bind -4"/g' /etc/default/bind9 |
| |
| exec /usr/sbin/named -u bind -g |