a ordem do módulo cloud-init está errada, como corrigir?

4

Estou usando o cloud-init para configurar máquinas do AWS EC2 que executam o Ubuntu 14.04. Um dos recursos mais úteis do cloud-init é o módulo write_files que me permite instalar arquivos adicionais durante a inicialização da máquina virtual.

write_files tem várias funções úteis, entre elas está o proprietário do arquivo, como documentados aqui . Infelizmente, parece que não posso usar esse recurso de write_files no Ubuntu 14.04 para definir o proprietário do arquivo para qualquer conta que não seja do sistema, porque o módulo cloud-init que adiciona usuários - "grupos de usuários " estão sendo executados após a seção write_files . Se eu definir o proprietário do arquivo para um usuário que é adicionado na seção users (ou, no meu caso, o padrão users ), mesmo se eu fizer isso pelo uid, recebo erros como este:

StandardError:('write-files', OSError("Unknown user or group: 'getpwnam(): name not found: ubuntu'",))

Isso parece codificado em /etc/cloud/cloud.cfg, que tem esta seção:

cloud_init_modules:
 - migrator
 - seed_random
 - bootcmd
 - write-files
 - growpart
 - resizefs
 - set_hostname
 - update_hostname
 - update_etc_hosts
 - ca-certs
 - rsyslog
 - users-groups
 - ssh

Eu vi alguns exemplos na internet que definiram cloud_init_modules nos dados do usuário cloud-init, mas se eu adicionar essa seção e pedir isso, então write-files está sob users-groups , isso não acontece parece ter algum efeito.

Além de desistir do write_files e implementar uma solução alternativa baseada em runcmd conforme documentado em pergunta # 605670 há mais alguma coisa que possa ser feita?

    
por Guss 27.01.2016 / 07:23

1 resposta

0

Eu acertei o mesmo bug # 1231541 . Como tive o problema no OpenStack, usei o packer para reconstruir a imagem e alterar a ordem dos módulos do cloud-init. Depois tudo funcionou como esperado.

    
por 28.11.2016 / 14:02