Como agendar uma tarefa como usuário não raiz no CoreOS

0

Eu tenho um script na minha máquina CoreOS que se parece com abaixo, que estou usando para ssh para vários nós de uma lista e obter detalhes necessários

host_det=$(ssh -Ao StrictHostKeyChecking=no -o BatchMode=yes -o ConnectTimeout=5 -l $user $node "
hostname
docker ps | grep haproxy
sudo df -h |grep abcd ")

Estou executando o ssh usando um usuário não-root que configurei como sem senha, e ele está funcionando bem se eu estiver executando-o como o mesmo usuário normalmente. (./ssh.sh)

Depois de programar esse script usando um temporizador systemd, o ssh está me pedindo senha e o script está falhando. Eu sei que quando usamos o timer, ele está sendo executado como usuário root e é por isso que ele está solicitando senha, mesmo que eu tenha especificado meu usuário ssh explicitamente. Existe alguma maneira de o CoreOS agendar o temporizador para usuários não-root?

Meu temporizador e amp; arquivos de serviço são fornecidos abaixo.

cat /etc/systemd/system/ssh.timer

[Unit]
Description=Run ssh.service every morning 8:30

[Timer]
OnCalendar=*-*-* 08:30:00
Persistent=true

[Install]
WantedBy=multi-user.target




cat /etc/systemd/system/ssh.service

[Unit]
Description=Run the ssh script

[Service]

Type=oneshot
ExecStart=/usr/bin/bash -c '/home/user_name/ssh.sh 2>/tmp/date'
    
por Siraj 01.02.2018 / 08:43

2 respostas

0

Você precisa definir

User=user_name

no seu arquivo .service para que seja executado como um usuário diferente.

    
por 02.02.2018 / 21:06
0

O problema estava com SSH_AUTH_SOCK , pois o ambiente do agendador é diferente do normal. Depois de exportar um SSH_AUTH_SOCK em funcionamento, o script começou a funcionar conforme o esperado. Obrigado pela sua ajuda.

    
por 06.02.2018 / 09:50