don't try to get DKIM keys from pass; don't recreate DKIM keys if already existing

This commit is contained in:
missytake
2023-10-12 15:27:26 +02:00
parent 96ff282382
commit 0cad23885d
2 changed files with 4 additions and 25 deletions

View File

@@ -1,11 +1,6 @@
import subprocess import subprocess
def get_pass(filename: str) -> str:
"""Get the data from the password manager."""
r = subprocess.run(["pass", "show", filename], capture_output=True, check=True)
return r.stdout.decode("utf-8")
chatmail = [ chatmail = [
( (
"c1.testrun.org", "c1.testrun.org",
@@ -13,8 +8,6 @@ chatmail = [
"ssh_user": "root", "ssh_user": "root",
"domain": "c1.testrun.org", "domain": "c1.testrun.org",
"dkim_selector": "2023", "dkim_selector": "2023",
"dkim_key": get_pass("delta/c1.testrun.org/dkim_key"),
"dkim_txt": get_pass("delta/c1.testrun.org/dkim_txt"),
}, },
), ),
] ]

View File

@@ -6,6 +6,7 @@ from io import StringIO
from pyinfra import host, logger from pyinfra import host, logger
from pyinfra.operations import apt, files, server, systemd, python from pyinfra.operations import apt, files, server, systemd, python
from pyinfra.facts.files import File
from .acmetool import deploy_acmetool from .acmetool import deploy_acmetool
@@ -23,7 +24,7 @@ def _install_chatctl() -> None:
def _configure_opendkim( def _configure_opendkim(
domain: str, dkim_selector: str, dkim_key: str, dkim_txt: str domain: str, dkim_selector: str
) -> bool: ) -> bool:
"""Configures OpenDKIM""" """Configures OpenDKIM"""
need_restart = False need_restart = False
@@ -46,20 +47,7 @@ def _configure_opendkim(
present=True, present=True,
) )
if dkim_key: if not host.get_fact(File, f"/etc/dkimkeys/{dkim_selector}.private"):
files.put(
name="Put the DKIM key",
src=StringIO(dkim_key),
dest=f"/etc/dkimkeys/{dkim_selector}.private",
mode="600",
)
files.put(
name="Put the DKIM DNS textfile",
src=StringIO(dkim_txt),
dest=f"/etc/dkimkeys/{dkim_selector}.txt",
mode="600",
)
else:
server.shell( server.shell(
name="Generate OpenDKIM domain keys", name="Generate OpenDKIM domain keys",
commands=[ commands=[
@@ -132,8 +120,6 @@ def _configure_dovecot(domain: str) -> bool:
def deploy_chatmail() -> None: def deploy_chatmail() -> None:
domain = host.data.domain domain = host.data.domain
dkim_selector = host.data.dkim_selector dkim_selector = host.data.dkim_selector
dkim_key = host.data.dkim_key
dkim_txt = host.data.dkim_txt
apt.update(name="apt update") apt.update(name="apt update")
server.group(name="Create vmail group", group="vmail", system=True) server.group(name="Create vmail group", group="vmail", system=True)
@@ -176,7 +162,7 @@ def deploy_chatmail() -> None:
dovecot_need_restart = _configure_dovecot(domain) dovecot_need_restart = _configure_dovecot(domain)
postfix_need_restart = _configure_postfix(domain) postfix_need_restart = _configure_postfix(domain)
opendkim_need_restart = _configure_opendkim( opendkim_need_restart = _configure_opendkim(
domain, dkim_selector, dkim_key, dkim_txt domain, dkim_selector
) )
systemd.service( systemd.service(