mirror of
https://github.com/chatmail/relay.git
synced 2026-05-19 12:28:06 +00:00
refactor: Add JournaldDeployer
This commit is contained in:
@@ -873,6 +873,29 @@ class IrohDeployer(Deployer):
|
|||||||
self.need_restart = False
|
self.need_restart = False
|
||||||
|
|
||||||
|
|
||||||
|
class JournaldDeployer(Deployer):
|
||||||
|
def configure_impl(self):
|
||||||
|
journald_conf = files.put(
|
||||||
|
name="Configure journald",
|
||||||
|
src=importlib.resources.files(__package__).joinpath("journald.conf"),
|
||||||
|
dest="/etc/systemd/journald.conf",
|
||||||
|
user="root",
|
||||||
|
group="root",
|
||||||
|
mode="644",
|
||||||
|
)
|
||||||
|
self.need_restart = journald_conf.changed
|
||||||
|
|
||||||
|
def activate_impl(self):
|
||||||
|
systemd.service(
|
||||||
|
name="Start and enable journald",
|
||||||
|
service="systemd-journald.service",
|
||||||
|
running=True,
|
||||||
|
enabled=True,
|
||||||
|
restarted=self.need_restart,
|
||||||
|
)
|
||||||
|
self.need_restart = False
|
||||||
|
|
||||||
|
|
||||||
def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
|
def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
|
||||||
"""Deploy a chat-mail instance.
|
"""Deploy a chat-mail instance.
|
||||||
|
|
||||||
@@ -901,6 +924,7 @@ def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
|
|||||||
postfix_deployer = PostfixDeployer(config=config, disable_mail=disable_mail)
|
postfix_deployer = PostfixDeployer(config=config, disable_mail=disable_mail)
|
||||||
|
|
||||||
nginx_deployer = NginxDeployer(config=config)
|
nginx_deployer = NginxDeployer(config=config)
|
||||||
|
journald_deployer = JournaldDeployer()
|
||||||
|
|
||||||
all_deployers = [
|
all_deployers = [
|
||||||
unbound_deployer,
|
unbound_deployer,
|
||||||
@@ -909,6 +933,7 @@ def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
|
|||||||
dovecot_deployer,
|
dovecot_deployer,
|
||||||
postfix_deployer,
|
postfix_deployer,
|
||||||
nginx_deployer,
|
nginx_deployer,
|
||||||
|
journald_deployer,
|
||||||
]
|
]
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1005,6 +1030,7 @@ def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
|
|||||||
postfix_deployer.install()
|
postfix_deployer.install()
|
||||||
dovecot_deployer.install()
|
dovecot_deployer.install()
|
||||||
nginx_deployer.install()
|
nginx_deployer.install()
|
||||||
|
journald_deployer.install()
|
||||||
|
|
||||||
apt.packages(
|
apt.packages(
|
||||||
name="Install fcgiwrap",
|
name="Install fcgiwrap",
|
||||||
@@ -1058,21 +1084,9 @@ def deploy_chatmail(config_path: Path, disable_mail: bool) -> None:
|
|||||||
commands=[f"echo {mail_domain} >/etc/mailname; chmod 644 /etc/mailname"],
|
commands=[f"echo {mail_domain} >/etc/mailname; chmod 644 /etc/mailname"],
|
||||||
)
|
)
|
||||||
|
|
||||||
journald_conf = files.put(
|
journald_deployer.configure()
|
||||||
name="Configure journald",
|
journald_deployer.activate()
|
||||||
src=importlib.resources.files(__package__).joinpath("journald.conf"),
|
|
||||||
dest="/etc/systemd/journald.conf",
|
|
||||||
user="root",
|
|
||||||
group="root",
|
|
||||||
mode="644",
|
|
||||||
)
|
|
||||||
systemd.service(
|
|
||||||
name="Start and enable journald",
|
|
||||||
service="systemd-journald.service",
|
|
||||||
running=True,
|
|
||||||
enabled=True,
|
|
||||||
restarted=journald_conf.changed,
|
|
||||||
)
|
|
||||||
files.directory(
|
files.directory(
|
||||||
name="Ensure old logs on disk are deleted",
|
name="Ensure old logs on disk are deleted",
|
||||||
path="/var/log/journal/",
|
path="/var/log/journal/",
|
||||||
|
|||||||
Reference in New Issue
Block a user