Estou tentando implantar serviços de usuário podman em um ambiente de rede corporativa onde todos os usuários do Linux têm seus diretórios pessoais montados em NFS a partir de um servidor de arquivos comum. Não tenho certeza de como ter serviços de nível de usuário específicos do computador quando o diretório inicial do meu usuário em todas as máquinas é montado por nfs no mesmo compartilhamento.
Para que o podman funcione de forma limpa com diretórios domésticos de rede, descobri que precisarei definir graphroot
a configuração para apontar para algum lugar em cada máquina local, caso contrário, os contêineres em cada máquina tentarão usar o mesmo armazenamento e ficarão confusos. Ok, eu posso fazer isso (embora seja necessário algum trabalho com a TI para configurar isso).
Ao transformar pods/contêineres em serviços de nível de usuário (usando podman generate systemd
), eu normalmente colocaria o .service
arquivo, ~/.config/systemd/user
mas isso também está no compartilhamento de rede e, portanto, afetaria meu usuário em todos os locais.
Existe uma maneira padrão de contornar esse problema? Como posso ter serviços de nível de usuário por máquina (ou seja, posso querer que máquinas diferentes tenham serviços diferentes, especialmente se esses serviços forem contêineres referenciados por seu ID)?
Extensão de pergunta bônus: também pretendo definir loginctl enable-linger
. Como os diretórios pessoais do NFS são montados com preguiça, isso realmente resultará na inicialização dos serviços na inicialização?
Use as diretivas Condition*= .
Se você estiver usando autofs, o
systemd --user
processo que tentar acessar o ~/.config de cada usuário acionará a montagem lenta da mesma forma que, por exemplo, cronjobs faria.(Isso não funcionará se você estiver usando NFS com Kerberos.)
Se a montagem lenta for acionada usando PAM, isso acontecerá se
/etc/pam.d/systemd-user
invocar os módulos PAM necessários. (Mais uma vez, exatamente como com cronjobs, ele apenas acionará os módulos 'account' e 'session', mas não passará por 'auth'.)