Estou tentando executar o seguinte arquivo preseed em uma máquina do servidor do Ubuntu 16.04 (durante uma compilação do compactador):
d-i preseed/late_command string \
in-target mkdir -v -p -m 0440 "/etc/sudoers.d"; \
in-target echo "%vagrant ALL=(ALL) NOPASSWD: ALL" | tee -a /etc/sudoers.d/vagrant; \
in-target echo "Defaults:vagrant !requiretty" | tee -a /etc/sudoers.d/vagrant; \
in-target chmod 440 /etc/sudoers.d/vagrant;
Em / var / log / installer / syslog eu posso ver o seguinte erro:
log-output: sh:
log-output: tee: not found
Quando eu mudo a parte "| tee -a" para "> >" assim:
d-i preseed/late_command string \
in-target mkdir -v -p -m 0440 "/etc/sudoers.d"; \
in-target echo "%vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant; \
in-target echo "Defaults:vagrant !requiretty" >> /etc/sudoers.d/vagrant; \
in-target chmod 440 /etc/sudoers.d/vagrant;
De repente, começa a reclamar que não pode encontrar o diretório, sem dizer nada sobre a linha mkdir - por isso não é nem criar o diretório, nem encontrá-lo:
log-output: sh: can't create /etc/sudoers.d/vagrant: nonexistent directory
log-output: sh: can't create /etc/sudoers.d/vagrant: nonexistent directory
log-output: chmod:
log-output: cannot access '/etc/sudoers.d/vagrant'
log-output: : No such file or directory
Eu tenho procurado outros scripts no github. Também adicionei a seguinte linha ao arquivo preseed.cfg:
d-i pkgsel/include string openssh-server coreutils wget sudo
Eu até tentei instalar o coreutils como um comando no destino, para garantir que o tee esteja disponível. Estive nisso por alguns dias agora, reconstruindo o ubuntu tempo após o tempo, apenas para encontrar os mesmos erros no syslog. Se alguém pudesse lançar alguma luz sobre isso - deve ser algo simples, mas eu não estou vendo isso ...