web-dev-qa-db-fra.com

Comment laisser le client cloud-init de maas sélectionner le miroir interne?

Notre maas LAN ne peut pas accéder à Internet et dispose d'un site interne apt-mirror 192.168.3.6. J'ai changé l'ensemble miroir du fichier snippets/maas_proxy du serveur maas comme suit:

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

J'ai déployé deux nœuds maas. Le tableau de bord montre que l'état des deux nœuds est prêt. Mais le client cloud-init du nœud a changé les sources.list de l'apt comme ceci:

## 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
...

Utilisez directement le noeud d'installation cobbler (sans maas), les sources.list du noeud apt comme:

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

Ma question est:

  1. Comment définir les données utilisateur dans maas? Pour que je puisse définir l'URL du miroir de cloud-init sur 192.168.3.6 ou empêcher cloud-init de changer l'URL du miroir.
  2. Le fichier du nœud Maas /home/ubuntu/.ssh/authorized_keys est vide. Est-ce dû à la configuration du miroir?
2
Michael

OK, nous pouvons terminer l'installation du nœud en ajoutant une ligne dans/var/lib/cobbler/snippets/maas_preseed comme:

 $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

En fait, cloud-init/local-cloud-config est le configurateur local de cloud-init.

1
Michael

Merci d'avoir signalé cela. J'ai ouvert bug 1006966 contre maas en amont pour résoudre ce problème.

Pour le moment, la façon la plus simple de contourner ce problème est probablement de demander à une commande tardive d'installer un fichier dans /etc/cloud/cloud.cfg avec un contenu comme:

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

Non testé, mais vous pouvez y parvenir en faisant:

--- /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" \

Oh, et pour répondre "comment définir les données utilisateur dans maas", cela n'est actuellement possible qu'en utilisant l'API maas. Il n'existe actuellement aucun outil client.

2
smoser