Como deixar o cliente cloud-init do maas selecionar o espelho interno?

2

Nossa maas LAN não pode acessar a internet e tem um site interno do apt-mirror 192.168.3.6. Alterei o conjunto de espelhos do arquivo snippets / maas_proxy do servidor maas da seguinte forma:

d-i     mirror/country string manual
d-i     mirror/http/hostname string 192.168.3.6
d-i     mirror/http/directory string /ubuntu
d-i     mirror/http/proxy string

Eu implantei dois maas node. O painel mostra que o estado dos dois nós está pronto. Mas o cliente cloud-init do node alterou o sources.list do apt assim:

## Note, this file is written by cloud-init on first boot of an instance
## modifications made here will not survive a re-bundle.
## if you wish to make changes you can:
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
##     or do the same in user-data
...
deb http://archive.ubuntu.com/ubuntu precise main
deb-src http://archive.ubuntu.com/ubuntu precise main
...

Use diretamente o nó de instalação do cobbler (sem maas), o sources.list do nó apt como:

...
deb http://192.168.3.6/ubuntu precise main
deb-src http://192.168.3.6/ubuntu precise main
...

Minha pergunta é:

  1. Como definir dados de usuários no maas? Para que eu possa definir o URL do mirror do cloud-init como 192.168.3.6 ou impedir que o cloud-init altere o URL do mirror.
  2. O arquivo /home/ubuntu/.ssh/authorized_keys do nó do Maas está vazio. Isso é causado pela configuração do espelho?
por Michael 31.05.2012 / 03:54

2 respostas

1

OK, podemos concluir a instalação do nó adicionando uma linha em / var / lib / cobbler / snippets / maas_preseed como:

 $maas_preseed_data    
 cloud-init   cloud-init/local-cloud-config string manage_etc_hosts: localhost
+cloud-init   cloud-init/local-cloud-config string apt_preserve_sources_list: true

Em termos de fator, cloud-init / local-cloud-config é o configer local do cloud-init.

    
por Michael 04.06.2012 / 07:33
2

Obrigado por denunciar isto. Eu abri o bug 1006966 contra os maas do upstream para resolver isso.

Por enquanto, a maneira mais fácil de contornar isso é provavelmente ter um late_command para instalar um arquivo em /etc/cloud/cloud.cfg com conteúdo como:

# /etc/cloud/cloud.cfg.d/99-local-mirror-only.cfg
apt_preserve_sources_list: true

Não testado, mas você pode conseguir fazer isso:

--- /var/lib/cobbler/kickstarts/maas.preseed.dist   2012-05-31 15:37:06.689109923 +0000
+++ /var/lib/cobbler/kickstarts/maas.preseed    2012-05-31 15:37:43.293109690 +0000
@@ -90,4 +90,5 @@
 d-i    preseed/late_command string true && \
        $SNIPPET('maas_sudoers') && \
        $SNIPPET('maas_disable_pxe') && \
+       $SNIPPET('local_mass_local_mirror') && \
        true
--- /dev/null   2012-05-31 15:21:47.612623001 +0000
+++ /var/lib/cobbler/snippets/local_maas_local_mirror   2012-05-31 15:39:33.897110012 +0000
@@ -0,0 +1 @@
+in-target sh -c "echo apt_preserve_sources_list: true > /etc/cloud/cloud.cfg.d/99-local-mirror-only.cfg" \

Ah, e para responder "como definir userdata no maas", isso só é possível atualmente usando a API do maas. Não há ferramentas de cliente existentes no momento.

    
por smoser 31.05.2012 / 17:44