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.
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?
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.
Tags cloud-init ubuntu ubuntu-14.04