TL/DR: hoe kan ik in Postfix's "main.cf" configuratiestatements maken afhankelijk van het ingestelde IP-adres?
Achtergrond:
24/7 server (hobby, niet bedrijfskritisch) met o.a. Debian stable, Postfix (2.11) en nog wat andere dingen om als web/mail/fileserver te werken. IP-adres is vast, 192.168.1.2.
Dagelijks wordt er een hardware-identieke backupserver gestart die met rsync een complete mirror van de server naar zichzelf maakt. Na 'rsync' wordt het IP-adres in /etc/network/interfaces gecorrigeerd naar 192.168.1.3 (IP-adres van backup-machine).
Het idee is dat als m'n server ooit uitvalt, ik enkel het IP-adres van de backup-machine hoef aan te passen om weer in de lucht te zijn - en hooguit een dag aan mail of werk kwijt te zijn.
Werkt prima, maar: ik wil na afloop van het syncen een mail vanaf de backup machine sturen ('klaar!') naar een mailadres op de main server. Echter Postfix op de backup-server ziet zichzelf als de bestemming (want, o.a. mydestination zorgt ervoor dat dat match met het 'to' adres). Ofwel, ik zou Postfix 'anders' willen instellen, afhankelijk van het IP-adres (main of backup machine).
Work-in-progress:
Het conditioneel configureren in main.cf lijk ik voor elkaar te hebben, in main.cf:
... en op dezelfde manier voor bijv. mydestinations. Het voelt nog wat gekunsteld, ben benieuwd of dit charmanter kan maar het werkt wel. Helaas ondersteund Postfix 2.11 nog niet de "check?A:B" C-achtige notatie, dus dan maar op deze manier.
Maar: hoe krijg ik dit nu als functie van het IP-adres van de machine? "main.cf" lijkt geen mogelijkheid te hebben om shell commando's aan te roepen, er zijn (postconf output) geen variabelen met het IP-adres van de machine...
De beste optie die ik zelf kan verzinnen is dat m'n sync-script niet alleen /etc/network/interfaces aanpast, maar ook Postfix's "main.cf" aanpast. Niet mooi, maar zou wel werken. Liever iets dat mooi is.
Ofwel, zie ik een mooie oplossing over het hoofd?
Achtergrond:
24/7 server (hobby, niet bedrijfskritisch) met o.a. Debian stable, Postfix (2.11) en nog wat andere dingen om als web/mail/fileserver te werken. IP-adres is vast, 192.168.1.2.
Dagelijks wordt er een hardware-identieke backupserver gestart die met rsync een complete mirror van de server naar zichzelf maakt. Na 'rsync' wordt het IP-adres in /etc/network/interfaces gecorrigeerd naar 192.168.1.3 (IP-adres van backup-machine).
Het idee is dat als m'n server ooit uitvalt, ik enkel het IP-adres van de backup-machine hoef aan te passen om weer in de lucht te zijn - en hooguit een dag aan mail of werk kwijt te zijn.
Werkt prima, maar: ik wil na afloop van het syncen een mail vanaf de backup machine sturen ('klaar!') naar een mailadres op de main server. Echter Postfix op de backup-server ziet zichzelf als de bestemming (want, o.a. mydestination zorgt ervoor dat dat match met het 'to' adres). Ofwel, ik zou Postfix 'anders' willen instellen, afhankelijk van het IP-adres (main of backup machine).
Work-in-progress:
Het conditioneel configureren in main.cf lijk ik voor elkaar te hebben, in main.cf:
code:
1
2
3
4
5
6
7
| backup=1 # change to "backup=" for main server ... relayhost_main = smtp.ziggo.nl relayhost_backup = 192.168.1.2 relayhost_select1 = ${backup?$relayhost_backup} relayhost_select2 = ${backup:$relayhost_main} relayhost = ${relayhost_select1}${relayhost_select2} |
... en op dezelfde manier voor bijv. mydestinations. Het voelt nog wat gekunsteld, ben benieuwd of dit charmanter kan maar het werkt wel. Helaas ondersteund Postfix 2.11 nog niet de "check?A:B" C-achtige notatie, dus dan maar op deze manier.
Maar: hoe krijg ik dit nu als functie van het IP-adres van de machine? "main.cf" lijkt geen mogelijkheid te hebben om shell commando's aan te roepen, er zijn (postconf output) geen variabelen met het IP-adres van de machine...
De beste optie die ik zelf kan verzinnen is dat m'n sync-script niet alleen /etc/network/interfaces aanpast, maar ook Postfix's "main.cf" aanpast. Niet mooi, maar zou wel werken. Liever iets dat mooi is.
Ofwel, zie ik een mooie oplossing over het hoofd?