Jasa Seting VPS dan Dedicated Server Linux (Instal, Migrasi, Backup, Troubleshooting, etc) - 081 22 999 4257

Cara Menambahkan Banyak Domain Sekaligus dalam Konfigurasi NSD (Nameserver Daemon)

Hello. Pada postingan yg di sini sudah saya paparkan cara membuat nameserver sendiri menggunakan NSD yg diinstal pada server CentOS 7. Jika diikuti dengan benar maka hasilnya sekarang akan punya 2 buah nameserver yaitu misalnya ns1.eudns.ch dan ns2.eudns.ch.

Menambahkan satu atau dua domain baru supaya pointing ke ip webhosting tentu tidak susah karena tinggal modifikasi nsd.conf dan membuat sebuah zone file. Nah bagaimana jika domain yg akan ditambahkan jumlahnya banyak? Misal ada seratus domain lebih. Kalo mau setup satu persatu tentu bikin pegal dan stres kan. Oleh karena itu di sini saya akan bagikan sebuah hack supaya bisa menambahkan domain secara masal, menggunakan sebuah bash/shell script.

Langkahnya adalah sebagai berikut:

    1. Masuk ke direktori master yaitu cd /etc/nsd/master (di sinilah tersimpan semua zone files)
    2. Buat sebuah file berisi daftar domain yg akan diseting nameservernya. vim domains Bikin satu domain per baris misalnya gini:
      example1.com
      example2.com
      example3.com
      example4.com
      example5.com
      example6.com
      example7.com

    3. Siapkan sebuah file berisi template zone file, vim templ yg isinya:
      ;
      ; NSD data file for example.com
      ;
      
      $TTL 3h
      @ IN SOA ns1.eudns.ch. admin.eudns.ch. (
      1 ; Serial
      3h ; Refresh after 3 hours
      1h ; Retry after 1 hour
      1w ; Expire after 1 week
      1h ) ; Negative caching TTL of 1 day
      ;
      @ IN NS ns1.eudns.ch.
      @ IN NS ns2.eudns.ch.
      
      example.com.         IN A 66.128.97.7
      www                  IN CNAME example.com.

    4. Copy konfigurasi nsd.conf yg sudah saya bahas pada postingan sebelumnya dan paste di direktori master cp /etc/nsd/nsd.conf /etc/nsd/master
    5. Kemudian bikin bash script yg isinya:
      #!/bin/bash 
      template_file="templ"
      config_file="nsd.conf"
      domains_file="domains "while IFS= read -r domain || [[ -n "$domain" ]]; do
      zone_file="${domain}.zone"
      cp "$template_file" "$zone_file"
      sed -i "s/example\.com/$domain/g" "$zone_file"
      echo "Created zone file: $zone_file"
      
      echo "" >> "$config_file"
      echo "zone:" >> "$config_file"
      echo " name: \"$domain\"" >> "$config_file"
      echo " zonefile: \"$zone_file\"" >> "$config_file"
      done < "$domains_file"

    6. Beri nama file tsb misalnya zone.sh lalu jadikan executable dengan command chmod +x zone.sh
    7. Jalankan dengan cara ./zone.sh
    8. Script tsb akan otomatis membikin zone files sebanyak daftar domain yg ada di file domains dengan isi seperti yg telah ditentukan sesuai template
    9. Jgn lupa copy-kan nsd.conf dari direktori master ke /etc/nsd (replace nsd.conf sebelumnya)
    10. Restart dengan command service nsd restart

Saya pernah seting sekitar 150 domain dan dengan bantuan shell script ini prosesnya menjadi cepat dan enteng. Tanpa ribet dan pusing edit nsd.conf dan bikin zone file satu demi satu. Bikin daftar domainnya sama aja bikin capek donk? Oh tentu tidak, kan biasanya di registrar ada fitur select all domains dan bisa diekspor ke format csv, tinggal kita buka pake Excel atau Google spreadsheet, copy seluruh domain pada kolom domain lalu paste di file yg ada di langkah nomor 2 di atas.

Leave a Reply