ntpd em systemd-nspawn

0

Estou jogando com conteinerização de várias partes da minha infraestrutura de servidor e um dos serviços que gostaria de executar no container é o daemon ntp.

Estou usando o systemd-nspawn (systemd 233) como um hypervisor, bem como o processo init dentro dos contêineres.

A versão ntpd é 4.2.8p10.

Toda vez que eu tento iniciar o ntpd dentro de um contêiner ele falha com a operação cap_set_proc() não permitida:

21 Oct 11:10:23 ntpd[51]: ntpd [email protected] Fri Oct 20 23:28:39 UTC 2017 (1): Starting
21 Oct 11:10:23 ntpd[51]: Command line: ntpd -g -n -u ntp:ntp
21 Oct 11:10:23 ntpd[51]: Cannot set RLIMIT_MEMLOCK: Operation not permitted
21 Oct 11:10:23 ntpd[51]: proto: precision = 0.335 usec (-21)
21 Oct 11:10:23 ntpd[51]: Listen normally on 0 v4wildcard 0.0.0.0:123
21 Oct 11:10:23 ntpd[51]: Listen normally on 1 lo 127.0.0.1:123
21 Oct 11:10:23 ntpd[51]: Listening on routing socket on fd #18 for interface updates
21 Oct 11:10:23 ntpd[51]: mlockall(): Cannot allocate memory
21 Oct 11:10:23 ntpd[51]: start_kern_loop: ntp_loopfilter.c line 1119: ntp_adjtime: Operation not permitted
21 Oct 11:10:23 ntpd[51]: set_freq: ntp_loopfilter.c line 1082: ntp_adjtime: Operation not permitted
21 Oct 11:10:23 ntpd[51]: cap_set_proc() failed to drop root privs: Operation not permitted

O que tentei até agora:

  1. Criando o ntpd sem recursos ativados - ele é iniciado corretamente, mas ainda tem os mesmos problemas de permissão ntp_adjtime syscall.
  2. Executando o systemd-nspawn com --private-users=0 e sem --private-users .
  3. Jogando com recursos para o próprio systemd-nspawn (principalmente CAP_SYS_TIME e CAP_NET_BIND_SERVICE )
  4. Jogando com recursos para o ntpd dentro do contêiner.

Tudo isso não deu resultados positivos e eu me pergunto o que estou perdendo. Qualquer idéia será muito apreciada.

    
por GeekMagus 21.10.2017 / 03:17

0 respostas