1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
---|
2 | <html xmlns="http://www.w3.org/1999/xhtml"> |
---|
3 | <head> |
---|
4 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
---|
5 | <meta http-equiv="Content-Style-Type" content="text/css" /> |
---|
6 | <meta name="generator" content="pandoc" /> |
---|
7 | <title></title> |
---|
8 | <style type="text/css">code{white-space: pre;}</style> |
---|
9 | <link href="data:text/css;charset=utf-8,%0A%0A%0A%0Adiv%23header%2C%20header%0A%7B%0A%0Aborder%2Dbottom%3A%201px%20solid%20%23aaa%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0A%7D%0A%2Etitle%20%0A%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%2Eauthor%2C%20%2Edate%20%0A%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%0Adiv%23TOC%2C%20nav%23TOC%0A%7B%0A%0Aborder%2Dbottom%3A%201px%20solid%20%23aaa%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0A%7D%0A%40media%20print%0A%7B%0Adiv%23TOC%2C%20nav%23TOC%0A%7B%0A%0Adisplay%3A%20none%3B%0A%7D%0A%7D%0A%0Ah1%2C%20h2%2C%20h3%2C%20h4%2C%20h5%2C%20h6%0A%7B%0Afont%2Dfamily%3A%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20%22Liberation%20Sans%22%2C%20Calibri%2C%20Arial%2C%20sans%2Dserif%3B%20%0A%0Apage%2Dbreak%2Dafter%3A%20avoid%3B%20%0A%7D%0A%0Adiv%20div%2C%20section%20section%20%0A%7B%0Amargin%2Dleft%3A%202em%3B%20%0A%7D%0Ap%20%7B%7D%0Ablockquote%0A%7B%20font%2Dstyle%3A%20italic%3B%0A%7D%0Ali%20%0A%7B%0A%7D%0Ali%20%3E%20p%20%0A%7B%0Amargin%2Dtop%3A%201em%3B%20%0A%7D%0Aul%20%0A%7B%0A%7D%0Aul%20li%20%0A%7B%0A%7D%0Aol%20%0A%7B%0A%7D%0Aol%20li%20%0A%7B%0A%7D%0Ahr%20%7B%7D%0A%0Asub%20%0A%7B%0A%7D%0Asup%20%0A%7B%0A%7D%0Aem%20%0A%7B%0A%7D%0Aem%20%3E%20em%20%0A%7B%0Afont%2Dstyle%3A%20normal%3B%0A%7D%0Astrong%20%0A%7B%0A%7D%0A%0Aa%20%0A%7B%0A%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0A%40media%20screen%0A%7B%0Aa%3Ahover%0A%7B%0A%0Atext%2Ddecoration%3A%20underline%3B%0A%7D%0A%7D%0A%40media%20print%0A%7B%0Aa%20%7B%0A%0Acolor%3A%20black%3B%0Abackground%3A%20transparent%3B%0A%7D%0Aa%5Bhref%5E%3D%22http%3A%2F%2F%22%5D%3Aafter%2C%20a%5Bhref%5E%3D%22https%3A%2F%2F%22%5D%3Aafter%0A%7B%0A%0Acontent%3A%20%22%20%28%22%20attr%28href%29%20%22%29%20%22%3B%0Afont%2Dsize%3A%2090%25%3B%0A%7D%0A%7D%0A%0Aimg%0A%7B%0A%0Avertical%2Dalign%3A%20middle%3B%0A%7D%0Adiv%2Efigure%20%0A%7B%0A%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0Atext%2Dalign%3A%20center%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Ap%2Ecaption%20%0A%7B%0A%0A%7D%0A%0Apre%2C%20code%20%7B%0Abackground%2Dcolor%3A%20%23fdf7ee%3B%0A%0A%0A%0Awhite%2Dspace%3A%20pre%2Dwrap%3B%20%0Awhite%2Dspace%3A%20%2Dmoz%2Dpre%2Dwrap%20%21important%3B%20%0Awhite%2Dspace%3A%20%2Dpre%2Dwrap%3B%20%0Awhite%2Dspace%3A%20%2Do%2Dpre%2Dwrap%3B%20%0Aword%2Dwrap%3A%20break%2Dword%3B%20%0A%0A%7D%0Apre%20%0A%7B%0A%0Apadding%3A%200%2E5em%3B%20%0Aborder%2Dradius%3A%205px%3B%20%0A%0Aborder%3A%201px%20solid%20%23aaa%3B%0A%0Amargin%2Dleft%3A%200%2E5em%3B%0Amargin%2Dright%3A%200%2E5em%3B%0A%7D%0A%40media%20screen%0A%7B%0Apre%0A%7B%0A%0Awhite%2Dspace%3A%20pre%3B%0Aoverflow%3A%20auto%3B%0A%0Aborder%3A%201px%20dotted%20%23777%3B%0A%7D%0A%7D%0Acode%20%0A%7B%0A%7D%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%0A%7B%0A%0Apadding%2Dleft%3A%202px%3B%0Apadding%2Dright%3A%202px%3B%0A%7D%0Ali%20%3E%20p%20code%20%0A%7B%0A%0Apadding%3A%202px%3B%0A%7D%0A%0Aspan%2Emath%20%0A%7B%0A%0A%7D%0Adiv%2Emath%20%0A%7B%0A%7D%0Aspan%2ELaTeX%20%0A%7B%0A%7D%20eq%20%0A%7B%0A%7D%20%0A%0Atable%0A%7B%0Aborder%2Dcollapse%3A%20collapse%3B%0Aborder%2Dspacing%3A%200%3B%20%0Aborder%2Dbottom%3A%202pt%20solid%20%23000%3B%0Aborder%2Dtop%3A%202pt%20solid%20%23000%3B%20%0A%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0A%7D%0Athead%20%0A%7B%0Aborder%2Dbottom%3A%201pt%20solid%20%23000%3B%0Abackground%2Dcolor%3A%20%23eee%3B%20%0A%7D%0Atr%2Eheader%20%0A%7B%0A%7D%20tbody%20%0A%7B%0A%7D%0A%0Atr%20%7B%0A%7D%0Atr%2Eodd%3Ahover%2C%20tr%2Eeven%3Ahover%20%0A%7B%0Abackground%2Dcolor%3A%20%23eee%3B%0A%7D%0A%0Atr%2Eodd%20%7B%7D%0Atr%2Eeven%20%7B%7D%0Atd%2C%20th%20%0A%7B%20vertical%2Dalign%3A%20top%3B%20%0Avertical%2Dalign%3A%20baseline%3B%20%0Apadding%2Dleft%3A%200%2E5em%3B%0Apadding%2Dright%3A%200%2E5em%3B%0Apadding%2Dtop%3A%200%2E2em%3B%0Apadding%2Dbottom%3A%200%2E2em%3B%0A%7D%0A%0A%0Ath%20%0A%7B%0Afont%2Dweight%3A%20bold%3B%20%7D%0Atfoot%20%0A%7B%0A%7D%0Acaption%20%0A%7B%0Acaption%2Dside%3A%20top%3B%0Aborder%3A%20none%3B%0Afont%2Dsize%3A%200%2E9em%3B%0Afont%2Dstyle%3A%20italic%3B%0Atext%2Dalign%3A%20center%3B%0Amargin%2Dbottom%3A%200%2E3em%3B%20%0Apadding%2Dbottom%3A%200%2E2em%3B%0A%7D%0A%0Adl%20%0A%7B%0Aborder%2Dtop%3A%202pt%20solid%20black%3B%0Apadding%2Dtop%3A%200%2E5em%3B%0Aborder%2Dbottom%3A%202pt%20solid%20black%3B%0A%7D%0Adt%20%0A%7B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Add%2Bdt%20%0A%7B%0Aborder%2Dtop%3A%201pt%20solid%20black%3B%0Apadding%2Dtop%3A%200%2E5em%3B%0A%7D%0Add%20%0A%7B%0Amargin%2Dbottom%3A%200%2E5em%3B%0A%7D%0Add%2Bdd%20%0A%7B%0Aborder%2Dtop%3A%201px%20solid%20black%3B%20%0A%7D%0A%0Aa%2Efootnote%2C%20a%2EfootnoteRef%20%7B%20%0Afont%2Dsize%3A%20small%3B%20vertical%2Dalign%3A%20text%2Dtop%3B%0A%7D%0Aa%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%0A%7B%0A%7D%0A%40media%20print%0A%7B%0Aa%5Bhref%5E%3D%22%23fnref%22%5D%2C%20a%2Ereversefootnote%20%0A%7B%0A%0Adisplay%3A%20none%3B%0A%7D%0A%7D%0Adiv%2Efootnotes%20%0A%7B%0A%7D%0Adiv%2Efootnotes%20li%5Bid%5E%3D%22fn%22%5D%20%0A%7B%0A%7D%0A%0A%40media%20print%0A%7B%0A%2Enoprint%0A%7B%0Adisplay%3Anone%3B%0A%7D%0A%7D%0A" rel="stylesheet" type="text/css" /> |
---|
10 | </head> |
---|
11 | <body> |
---|
12 | <h1 id="automated-zone-generation-using-cron">Automated zone generation using cron</h1> |
---|
13 | <h2 id="refresher-on-fred">Refresher on FRED</h2> |
---|
14 | <p>Remember the prerequisites for creating objects in the Fred DB (from https://fred.nic.cz/page/2906/installation-ubuntu/ and https://fred.nic.cz/page/699/fred-client-how-to/</p> |
---|
15 | <ol style="list-style-type: decimal"> |
---|
16 | <li>Make sure you have an existing contact, or create one</li> |
---|
17 | <li>Make sure you have an NS-set, or create one, and associate it to the contact</li> |
---|
18 | <li>Once the above are fulfilled, you can create a domain, referencing the contact and NS-set</li> |
---|
19 | </ol> |
---|
20 | <p>From the Ubuntu installation above, you remember running this command near the end:</p> |
---|
21 | <p><code>genzone_client</code></p> |
---|
22 | <p>... if you remember, this automatically generated (created and wrote the contents) all the zones to disk.</p> |
---|
23 | <p>Let's create a place where we can export our zones:</p> |
---|
24 | <pre><code>cd |
---|
25 | mkdir zones |
---|
26 | cd zones |
---|
27 | pwd</code></pre> |
---|
28 | <p>The 4 commands above make sure you that:</p> |
---|
29 | <ul> |
---|
30 | <li>you are in your home directory (<code>cd</code>)</li> |
---|
31 | <li>a directory "zones" exist (<code>mkdir zones</code>)</li> |
---|
32 | <li>you change the current working directory to "zones" (<code>cd zones</code>)</li> |
---|
33 | <li>you verify that you are indeed placed inside this directory (<code>pwd</code>)</li> |
---|
34 | </ul> |
---|
35 | <p>Once you've done this, let's run the <code>genzone_client</code>:</p> |
---|
36 | <pre><code>genzone_client</code></pre> |
---|
37 | <p>Then</p> |
---|
38 | <pre><code>ls -l</code></pre> |
---|
39 | <p>... you should see at list one file, for the zone of the domain for the TLD that was created when you installed FRED.</p> |
---|
40 | <p>For example, you may see:</p> |
---|
41 | <pre><code>-rw-rw-r-- 1 sysadm sysadm 719 Jun 1 07:19 db.dk</code></pre> |
---|
42 | <h2 id="automate-zone-generation">Automate zone generation</h2> |
---|
43 | <p>Now, we would like to have the above "zone generation" take place automatically, so we don't need to remember to do it manually every time we make changes in the zone.</p> |
---|
44 | <p>It turns out that the FRED packages have this already configured!</p> |
---|
45 | <pre><code>cat /etc/cron.d/pyfred-genzone </code></pre> |
---|
46 | <p>You should see:</p> |
---|
47 | <pre><code>*/30 * * * * root /usr/bin/genzone_client</code></pre> |
---|
48 | <p>Every 30 minutes of every hour, every day, every month, all weekdays, run the commands "<code>/usr/bin/genzone_client</code>"</p> |
---|
49 | <p>By default, the zones are being written to the <code>/root</code> directory. You can go there and look:</p> |
---|
50 | <pre><code>cd /root |
---|
51 | ls -l</code></pre> |
---|
52 | <p>Do you see any zone files ?</p> |
---|
53 | <h2 id="the-details">The details</h2> |
---|
54 | <p>Let's look at the format above, called a <code>crontab</code>:</p> |
---|
55 | <pre><code>Minute Hour Day-of-Month Month Day-of-Week User Command [params]</code></pre> |
---|
56 | <p>For example, if we wanted to say "hello" at 5 minute past the hour on every hour, Monday to Friday, we would write:</p> |
---|
57 | <pre><code>5 * * * * 1-5 root echo "hello"</code></pre> |
---|
58 | <p>This reads as:</p> |
---|
59 | <p>At 5 minute past the hour, every hour, every day, every month, Mon-Fri, say hello (as the <code>root</code> user)</p> |
---|
60 | <p>The crontab for <code>pyfred-genzone</code> can be modified, so instead of running every 30 minutes, we're going to make it run every 5 minutes.</p> |
---|
61 | <pre><code>sudo vi /etc/cron.d/pyfred-genzone</code></pre> |
---|
62 | <p>Modify the line</p> |
---|
63 | <pre><code>*/30 * * * * root /usr/bin/genzone_client</code></pre> |
---|
64 | <p>And change '30' to '5'</p> |
---|
65 | <pre><code>*/5 * * * * root /usr/bin/genzone_client</code></pre> |
---|
66 | <p>The above reads as:</p> |
---|
67 | <p>Every 5 minutes of every hour, every day, every month, all weekdays, run the commands "<code>/usr/bin/genzone_client</code>"</p> |
---|
68 | <p>Once you've change the line, save the file and exit.</p> |
---|
69 | <p>Now instead of waiting 5 minutes, let's start configure BIND!</p> |
---|
70 | </body> |
---|
71 | </html> |
---|