Estou tentando fazer com que meu sistema monte /var
com um script personalizado que baixa a chave de descriptografia de um servidor de rede. Eu tinha uma solução que funcionava no RHEL 6 com o SysVinit. Estou tentando portar isso para o RHEL 7 com o systemd.
Eu preciso que /var
seja montado no início do processo de inicialização antes que outros serviços que gravam em /var
sejam iniciados. É complicado porque tenho Requires=network-online.target
e After=network-online.target
dependencies.
Eu tenho um arquivo [email protected]
ativo que faz o download da chave de descriptografia e monta /var
. Funciona se eu o executar isoladamente, mas não durante a inicialização.
[Unit]
Description=Mount encrypted partition %f
DefaultDependencies=no
[email protected]
[email protected]
Before=remote-fs.target
After=remote-fs-pre.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/scripts/my-custom-mount-script %f
[Install]
WantedBy=remote-fs.target
Com isso, parece que o processo de download e montagem está sendo iniciado no início da inicialização, mas o sistema não está aguardando a conclusão. Tudo continua sendo iniciado paralelamente, fazendo com que todos os tipos de serviços falhem porque /var
não é gravável.
(A propósito, eu não consigo me virar com scripts personalizados. Eu adoraria usar os mecanismos FS criptografados, mas por razões de credenciamento além do meu controle eu não posso.)
Tags mount encryption systemd rhel