summaryrefslogtreecommitdiff
path: root/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-06-22 23:04:01 +0300
committerPaul Buetow <paul@buetow.org>2025-06-22 23:04:01 +0300
commitcd60a353054abfae9609f71fbab0e97640d0a877 (patch)
treeed12dbb9b117e842822c92b8c0586d0704959b12 /gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
parent7afc2fb9cac9547998cd7b4cf3283391e6331799 (diff)
Update content for html
Diffstat (limited to 'gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html')
-rw-r--r--gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html200
1 files changed, 100 insertions, 100 deletions
diff --git a/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html b/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
index 18be2c59..a32c2689 100644
--- a/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
+++ b/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
@@ -98,38 +98,38 @@ _____|_:_:_| (o)-(o) |_:_:_|--&#39;`-. ,--. ksh under-water (((\&#39;/
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><i><font color="#ababab">#!/bin/ksh</font></i>
+<pre><i><font color="#00ff00">#!/bin/ksh</font></i>
-<font color="#ff0000">ZONES_DIR</font><font color="#F3E651">=</font><font color="#ff0000">/var/nsd/zones/master</font><font color="#F3E651">/</font>
-<font color="#ff0000">DEFAULT_MASTER</font><font color="#F3E651">=</font><font color="#ff0000">fishfinger</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font>
-<font color="#ff0000">DEFAULT_STANDBY</font><font color="#F3E651">=</font><font color="#ff0000">blowfish</font><font color="#F3E651">.</font><font color="#ff0000">buetow</font><font color="#F3E651">.</font><font color="#ff0000">org</font>
+<font color="#ffffff">ZONES_DIR</font><b><font color="#ee5896">=</font></b><font color="#ffffff">/var/nsd/zones/master</font><b><font color="#ee5896">/</font></b>
+<font color="#ffffff">DEFAULT_MASTER</font><b><font color="#ee5896">=</font></b><font color="#ffffff">fishfinger</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font>
+<font color="#ffffff">DEFAULT_STANDBY</font><b><font color="#ee5896">=</font></b><font color="#ffffff">blowfish</font><b><font color="#ee5896">.</font></b><font color="#ffffff">buetow</font><b><font color="#ee5896">.</font></b><font color="#ffffff">org</font>
-<font color="#7bc710">determine_master_and_standby ()</font><font color="#ff0000"> {</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$DEFAULT_MASTER</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$DEFAULT_STANDBY</font>
+<b><font color="#ffffff">determine_master_and_standby ()</font></b><font color="#ffffff"> {</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$DEFAULT_MASTER</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$DEFAULT_STANDBY</font>
-<font color="#ff0000"> </font><font color="#F3E651">.</font>
-<font color="#ff0000"> </font><font color="#F3E651">.</font>
-<font color="#ff0000"> </font><font color="#F3E651">.</font>
-<font color="#ff0000"> </font>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -i </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">1</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> ftp -</font><font color="#bb00ff">4</font><font color="#ff0000"> -o - https</font><font color="#F3E651">://</font><font color="#ff0000">$master</font><font color="#ff0000">/index</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">|</font><font color="#ff0000"> grep -q </font><font color="#bb00ff">"Welcome to $master"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> echo </font><font color="#bb00ff">"https://$master/index.txt IPv4 health check failed"</font>
-<font color="#ff0000"> </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">0</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">elif</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> ftp -</font><font color="#bb00ff">6</font><font color="#ff0000"> -o - https</font><font color="#F3E651">://</font><font color="#ff0000">$master</font><font color="#ff0000">/index</font><font color="#F3E651">.</font><font color="#ff0000">txt </font><font color="#F3E651">|</font><font color="#ff0000"> grep -q </font><font color="#bb00ff">"Welcome to $master"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> echo </font><font color="#bb00ff">"https://$master/index.txt IPv6 health check failed"</font>
-<font color="#ff0000"> </font><font color="#ff0000">health_ok</font><font color="#F3E651">=</font><font color="#bb00ff">0</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b>
-<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">$health_ok</font><font color="#ff0000"> -eq </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">tmp</font><font color="#F3E651">=</font><font color="#ff0000">$master</font>
-<font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$standby</font>
-<font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$tmp</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b>
+<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b>
+<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b>
+<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b>
+<font color="#ffffff"> </font>
+<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> -i </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">1</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> ftp -</font><font color="#ff00ff">4</font><font color="#ffffff"> -o - https</font><b><font color="#ee5896">://</font></b><font color="#ffffff">$master</font><font color="#ffffff">/index</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -q </font><font color="#cd00ff">"Welcome to $master"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> echo </font><font color="#cd00ff">"https://$master/index.txt IPv4 health check failed"</font>
+<font color="#ffffff"> </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">elif</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> ftp -</font><font color="#ff00ff">6</font><font color="#ffffff"> -o - https</font><b><font color="#ee5896">://</font></b><font color="#ffffff">$master</font><font color="#ffffff">/index</font><b><font color="#ee5896">.</font></b><font color="#ffffff">txt </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> grep -q </font><font color="#cd00ff">"Welcome to $master"</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> echo </font><font color="#cd00ff">"https://$master/index.txt IPv6 health check failed"</font>
+<font color="#ffffff"> </font><font color="#ffffff">health_ok</font><b><font color="#ee5896">=</font></b><font color="#ff00ff">0</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b>
+<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">$health_ok</font><font color="#ffffff"> -eq </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">tmp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$master</font>
+<font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$standby</font>
+<font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$tmp</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b>
-<font color="#ff0000"> </font><font color="#F3E651">.</font>
-<font color="#ff0000"> </font><font color="#F3E651">.</font>
-<font color="#ff0000"> </font><font color="#F3E651">.</font>
-<font color="#ff0000">}</font>
+<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b>
+<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b>
+<font color="#ffffff"> </font><b><font color="#ee5896">.</font></b>
+<font color="#ffffff">}</font>
</pre>
<br />
<span>The failover scripts looks for the <span class='inlinecode'> ; Enable failover</span> string in the DNS zone files and swaps the <span class='inlinecode'>A</span> and <span class='inlinecode'>AAAA</span> records of the DNS entries accordingly:</span><br />
@@ -138,42 +138,42 @@ http://www.gnu.org/software/src-highlite -->
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><font color="#ff0000">fishfinger$ grep failover /var/nsd/zones/master/foo</font><font color="#F3E651">.</font><font color="#ff0000">zone</font><font color="#F3E651">.</font><font color="#ff0000">zone</font>
-<font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font>
-<font color="#ff0000"> </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a03</font><font color="#F3E651">:</font><font color="#bb00ff">6000</font><font color="#F3E651">:</font><font color="#ff0000">6f67</font><font color="#F3E651">:</font><font color="#bb00ff">624</font><font color="#F3E651">::</font><font color="#bb00ff">99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font>
-<font color="#ff0000">www </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">46.23</font><font color="#F3E651">.</font><font color="#bb00ff">94.99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font>
-<font color="#ff0000">www </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a03</font><font color="#F3E651">:</font><font color="#bb00ff">6000</font><font color="#F3E651">:</font><font color="#ff0000">6f67</font><font color="#F3E651">:</font><font color="#bb00ff">624</font><font color="#F3E651">::</font><font color="#bb00ff">99</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font>
-<font color="#ff0000">standby </font><font color="#bb00ff">300</font><font color="#ff0000"> IN A </font><font color="#bb00ff">23.88</font><font color="#F3E651">.</font><font color="#bb00ff">35.144</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font>
-<font color="#ff0000">standby </font><font color="#bb00ff">300</font><font color="#ff0000"> IN AAAA 2a01</font><font color="#F3E651">:</font><font color="#ff0000">4f8</font><font color="#F3E651">:</font><font color="#ff0000">c17</font><font color="#F3E651">:</font><font color="#ff0000">20f1</font><font color="#F3E651">::</font><font color="#bb00ff">42</font><font color="#ff0000"> </font><font color="#F3E651">;</font><font color="#ff0000"> Enable failover</font>
+<pre><font color="#ffffff">fishfinger$ grep failover /var/nsd/zones/master/foo</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zone</font><b><font color="#ee5896">.</font></b><font color="#ffffff">zone</font>
+<font color="#ffffff"> </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font>
+<font color="#ffffff"> </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a03</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">6000</font><b><font color="#ee5896">:</font></b><font color="#ffffff">6f67</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">624</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font>
+<font color="#ffffff">www </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">46.23</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">94.99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font>
+<font color="#ffffff">www </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a03</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">6000</font><b><font color="#ee5896">:</font></b><font color="#ffffff">6f67</font><b><font color="#ee5896">:</font></b><font color="#ff00ff">624</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">99</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font>
+<font color="#ffffff">standby </font><font color="#ff00ff">300</font><font color="#ffffff"> IN A </font><font color="#ff00ff">23.88</font><b><font color="#ee5896">.</font></b><font color="#ff00ff">35.144</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font>
+<font color="#ffffff">standby </font><font color="#ff00ff">300</font><font color="#ffffff"> IN AAAA 2a01</font><b><font color="#ee5896">:</font></b><font color="#ffffff">4f8</font><b><font color="#ee5896">:</font></b><font color="#ffffff">c17</font><b><font color="#ee5896">:</font></b><font color="#ffffff">20f1</font><b><font color="#ee5896">::</font></b><font color="#ff00ff">42</font><font color="#ffffff"> </font><b><font color="#ee5896">;</font></b><font color="#ffffff"> Enable failover</font>
</pre>
<br />
<!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><font color="#7bc710">transform ()</font><font color="#ff0000"> {</font>
-<font color="#ff0000"> sed -E </font><font color="#bb00ff">'</font>
-<font color="#bb00ff"> /IN A .*; Enable failover/ {</font>
-<font color="#bb00ff"> /^standby/! {</font>
-<font color="#bb00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN A '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/master_a</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font>
-<font color="#bb00ff"> }</font>
-<font color="#bb00ff"> /^standby/ {</font>
-<font color="#bb00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN A '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/standby_a</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font>
-<font color="#bb00ff"> }</font>
-<font color="#bb00ff"> }</font>
-<font color="#bb00ff"> /IN AAAA .*; Enable failover/ {</font>
-<font color="#bb00ff"> /^standby/! {</font>
-<font color="#bb00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN AAAA '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/master_aaaa</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font>
-<font color="#bb00ff"> }</font>
-<font color="#bb00ff"> /^standby/ {</font>
-<font color="#bb00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> 300 IN AAAA '</font><font color="#ff0000">$(</font><font color="#ff0000">cat /var/nsd/run/standby_aaaa</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font>
-<font color="#bb00ff"> }</font>
-<font color="#bb00ff"> }</font>
-<font color="#bb00ff"> / ; serial/ {</font>
-<font color="#bb00ff"> s/^( +) ([0-9]+) .*; (.*)/</font><font color="#ffffff">\1</font><font color="#bb00ff"> '</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">s</font><font color="#F3E651">)</font><font color="#bb00ff">' ; </font><font color="#ffffff">\3</font><font color="#bb00ff">/;</font>
-<font color="#bb00ff"> }</font>
-<font color="#bb00ff"> '</font>
-<font color="#ff0000">}</font>
+<pre><b><font color="#ffffff">transform ()</font></b><font color="#ffffff"> {</font>
+<font color="#ffffff"> sed -E </font><font color="#cd00ff">'</font>
+<font color="#cd00ff"> /IN A .*; Enable failover/ {</font>
+<font color="#cd00ff"> /^standby/! {</font>
+<font color="#cd00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN A '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/master_a</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font>
+<font color="#cd00ff"> }</font>
+<font color="#cd00ff"> /^standby/ {</font>
+<font color="#cd00ff"> s/^(.*) 300 IN A (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN A '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/standby_a</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font>
+<font color="#cd00ff"> }</font>
+<font color="#cd00ff"> }</font>
+<font color="#cd00ff"> /IN AAAA .*; Enable failover/ {</font>
+<font color="#cd00ff"> /^standby/! {</font>
+<font color="#cd00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN AAAA '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/master_aaaa</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font>
+<font color="#cd00ff"> }</font>
+<font color="#cd00ff"> /^standby/ {</font>
+<font color="#cd00ff"> s/^(.*) 300 IN AAAA (.*) ; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> 300 IN AAAA '</font><font color="#ffffff">$(</font><font color="#ffffff">cat /var/nsd/run/standby_aaaa</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font>
+<font color="#cd00ff"> }</font>
+<font color="#cd00ff"> }</font>
+<font color="#cd00ff"> / ; serial/ {</font>
+<font color="#cd00ff"> s/^( +) ([0-9]+) .*; (.*)/</font><font color="#cd00ff">\1</font><font color="#cd00ff"> '</font><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">s</font><b><font color="#ee5896">)</font></b><font color="#cd00ff">' ; </font><font color="#cd00ff">\3</font><font color="#cd00ff">/;</font>
+<font color="#cd00ff"> }</font>
+<font color="#cd00ff"> '</font>
+<font color="#ffffff">}</font>
</pre>
<br />
<span>After the failover, the script reloads <span class='inlinecode'>nsd</span> and performs a sanity check to see if DNS still works. If not, a rollback will be performed:</span><br />
@@ -182,48 +182,48 @@ http://www.gnu.org/software/src-highlite -->
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><i><font color="#ababab">#! Race condition !#</font></i>
-<font color="#ff0000"> </font>
-<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#ff0000">$zone_file</font>
-<b><font color="#ffffff">fi</font></b>
+<pre><i><font color="#00ff00">#! Race condition !#</font></i>
+<font color="#ffffff"> </font>
+<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><font color="#ffffff">$zone_file</font>
+<b><font color="#00ffff">fi</font></b>
-<font color="#ff0000">cat </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> transform </font><font color="#F3E651">&gt;</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font>
+<font color="#ffffff">cat </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><b><font color="#ee5896">|</font></b><font color="#ffffff"> transform </font><b><font color="#ee5896">&gt;</font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font>
-<font color="#ff0000">grep -v </font><font color="#bb00ff">' ; serial'</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#F3E651">&gt;</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font>
-<font color="#ff0000">grep -v </font><font color="#bb00ff">' ; serial'</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#F3E651">&gt;</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">old</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font>
+<font color="#ffffff">grep -v </font><font color="#cd00ff">' ; serial'</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><b><font color="#ee5896">&gt;</font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font>
+<font color="#ffffff">grep -v </font><font color="#cd00ff">' ; serial'</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><b><font color="#ee5896">&gt;</font></b><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">old</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font>
-<font color="#ff0000">echo </font><font color="#bb00ff">"Has zone $zone_file changed?"</font>
-<b><font color="#ffffff">if</font></b><font color="#ff0000"> diff -u </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">old</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">noserial</font><font color="#F3E651">.</font><font color="#ff0000">tmp</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> echo </font><font color="#bb00ff">"The zone $zone_file hasn't changed"</font>
-<font color="#ff0000"> rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.*.</font><font color="#ff0000">tmp</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">0</font>
-<b><font color="#ffffff">fi</font></b>
+<font color="#ffffff">echo </font><font color="#cd00ff">"Has zone $zone_file changed?"</font>
+<b><font color="#00ffff">if</font></b><font color="#ffffff"> diff -u </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">old</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">noserial</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> echo </font><font color="#cd00ff">"The zone $zone_file hasn't changed"</font>
+<font color="#ffffff"> rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.*.</font></b><font color="#ffffff">tmp</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">0</font>
+<b><font color="#00ffff">fi</font></b>
-<font color="#ff0000">cp </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak</font>
-<font color="#ff0000">mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">new</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$zone_file</font>
-<font color="#ff0000">rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.*.</font><font color="#ff0000">tmp</font>
-<font color="#ff0000">echo </font><font color="#bb00ff">"Reloading nsd"</font>
-<font color="#ff0000">nsd-control reload</font>
+<font color="#ffffff">cp </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak</font>
+<font color="#ffffff">mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">new</font><b><font color="#ee5896">.</font></b><font color="#ffffff">tmp </font><font color="#ffffff">$zone_file</font>
+<font color="#ffffff">rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.*.</font></b><font color="#ffffff">tmp</font>
+<font color="#ffffff">echo </font><font color="#cd00ff">"Reloading nsd"</font>
+<font color="#ffffff">nsd-control reload</font>
-<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> zone_is_ok </font><font color="#ff0000">$zone</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> echo </font><font color="#bb00ff">"Rolling back $zone_file changes"</font>
-<font color="#ff0000"> cp </font><font color="#ff0000">$zone_file</font><font color="#ff0000"> </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">invalid</font>
-<font color="#ff0000"> mv </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">bak </font><font color="#ff0000">$zone_file</font>
-<font color="#ff0000"> echo </font><font color="#bb00ff">"Reloading nsd"</font>
-<font color="#ff0000"> nsd-control reload</font>
-<font color="#ff0000"> zone_is_ok </font><font color="#ff0000">$zone</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">3</font>
-<b><font color="#ffffff">fi</font></b>
+<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">!</font></b><font color="#ffffff"> zone_is_ok </font><font color="#ffffff">$zone</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> echo </font><font color="#cd00ff">"Rolling back $zone_file changes"</font>
+<font color="#ffffff"> cp </font><font color="#ffffff">$zone_file</font><font color="#ffffff"> </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">invalid</font>
+<font color="#ffffff"> mv </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">bak </font><font color="#ffffff">$zone_file</font>
+<font color="#ffffff"> echo </font><font color="#cd00ff">"Reloading nsd"</font>
+<font color="#ffffff"> nsd-control reload</font>
+<font color="#ffffff"> zone_is_ok </font><font color="#ffffff">$zone</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">3</font>
+<b><font color="#00ffff">fi</font></b>
-<b><font color="#ffffff">for</font></b><font color="#ff0000"> cleanup </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> invalid bak</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b>
-<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">$cleanup</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> rm </font><font color="#ff0000">$zone_file</font><font color="#F3E651">.</font><font color="#ff0000">$cleanup</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b>
-<b><font color="#ffffff">done</font></b>
+<b><font color="#00ffff">for</font></b><font color="#ffffff"> cleanup </font><b><font color="#00ffff">in</font></b><font color="#ffffff"> invalid bak</font><b><font color="#ee5896">;</font></b><font color="#ffffff"> </font><b><font color="#00ffff">do</font></b>
+<font color="#ffffff"> </font><b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> -f </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">$cleanup</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> rm </font><font color="#ffffff">$zone_file</font><b><font color="#ee5896">.</font></b><font color="#ffffff">$cleanup</font>
+<font color="#ffffff"> </font><b><font color="#00ffff">fi</font></b>
+<b><font color="#00ffff">done</font></b>
-<font color="#ff0000">echo </font><font color="#bb00ff">"Failover of zone $zone to $MASTER completed"</font>
-<b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">1</font>
+<font color="#ffffff">echo </font><font color="#cd00ff">"Failover of zone $zone to $MASTER completed"</font>
+<b><font color="#00ffff">return</font></b><font color="#ffffff"> </font><font color="#ff00ff">1</font>
</pre>
<br />
<span>A non-zero return code (here, 3 when a rollback and 1 when a DNS failover was performed) will cause CRON to send an E-Mail with the whole script output.</span><br />
@@ -280,13 +280,13 @@ http://www.gnu.org/software/src-highlite -->
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><i><font color="#ababab"># Weekly auto-failover for Let's Encrypt automation</font></i>
-<b><font color="#ffffff">local</font></b><font color="#ff0000"> -i -r </font><font color="#ff0000">week_of_the_year</font><font color="#F3E651">=</font><font color="#ff0000">$(</font><font color="#ff0000">date </font><font color="#F3E651">+%</font><font color="#ff0000">U</font><font color="#F3E651">)</font>
-<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#ff0000">$(</font><font color="#F3E651">(</font><font color="#ff0000"> week_of_the_year </font><font color="#F3E651">%</font><font color="#ff0000"> </font><font color="#bb00ff">2</font><font color="#ff0000"> </font><font color="#F3E651">))</font><font color="#ff0000"> -eq </font><font color="#bb00ff">0</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> </font><font color="#ff0000">tmp</font><font color="#F3E651">=</font><font color="#ff0000">$master</font>
-<font color="#ff0000"> </font><font color="#ff0000">master</font><font color="#F3E651">=</font><font color="#ff0000">$standby</font>
-<font color="#ff0000"> </font><font color="#ff0000">standby</font><font color="#F3E651">=</font><font color="#ff0000">$tmp</font>
-<b><font color="#ffffff">fi</font></b>
+<pre><i><font color="#00ff00"># Weekly auto-failover for Let's Encrypt automation</font></i>
+<b><font color="#00ffff">local</font></b><font color="#ffffff"> -i -r </font><font color="#ffffff">week_of_the_year</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$(</font><font color="#ffffff">date </font><b><font color="#ee5896">+%</font></b><font color="#ffffff">U</font><b><font color="#ee5896">)</font></b>
+<b><font color="#00ffff">if</font></b><font color="#ffffff"> </font><b><font color="#ee5896">[</font></b><font color="#ffffff"> </font><font color="#ffffff">$(</font><b><font color="#ee5896">(</font></b><font color="#ffffff"> week_of_the_year </font><b><font color="#ee5896">%</font></b><font color="#ffffff"> </font><font color="#ff00ff">2</font><font color="#ffffff"> </font><b><font color="#ee5896">))</font></b><font color="#ffffff"> -eq </font><font color="#ff00ff">0</font><font color="#ffffff"> </font><b><font color="#ee5896">];</font></b><font color="#ffffff"> </font><b><font color="#00ffff">then</font></b>
+<font color="#ffffff"> </font><b><font color="#00ffff">local</font></b><font color="#ffffff"> </font><font color="#ffffff">tmp</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$master</font>
+<font color="#ffffff"> </font><font color="#ffffff">master</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$standby</font>
+<font color="#ffffff"> </font><font color="#ffffff">standby</font><b><font color="#ee5896">=</font></b><font color="#ffffff">$tmp</font>
+<b><font color="#00ffff">fi</font></b>
</pre>
<br />
<span>This way, a DNS failover is performed weekly so that the ACME automation can update the Let&#39;s Encrypt certificates (for master and standby) before they expire on each VM.</span><br />