Wie wird man cloud-init los?

20

Ich verwende Ubuntu 14.04 Image als Basis für Vagrant. Leider enthält diese Base-Box Cloud-Init, was beim Starten der Maschine viele Probleme verursacht: https://github.com/mitchellh/vagrant/issues/3860

Ich benutze meine Maschine nicht in der Cloud, deshalb brauche ich das nicht wirklich. Ich habe geschrieben:

sudo apt-get remove cloud-init

wird meine Probleme lösen, aber der Computer verbringt noch etwa 3 Minuten mit dem Start, um etwas zu konfigurieren, das ich nicht brauche.

Ich kann sehen , dass es aa Reihe von Cloud-init zugehörigen Dateien in /etc/init(zum Beispiel cloud-init.conf, cloud-final.conf, cloud-config.confusw.). Ich könnte sie löschen, bin mir aber nicht sicher, ob dies sicher ist.

Ich habe auch installiert rcconf, um alle Startskripte zu überprüfen, aber ich kann dort nichts finden, was mit cloud-init zu tun hat. Irgendwelche Ideen?

mnowotka
quelle

Antworten:

12

In den Cloud-Init-Dokumenten heißt die Möglichkeit zum Deaktivieren:

sudo touch /etc/cloud/cloud-init.disabled

Und / oder in cloud-init=disabledder Kernel-Befehlszeile einstellen , falls dies so aktiviert ist.

Pierz
quelle
Beachten Sie, dass es es nicht entfernt. Es ist immer noch da, aber es wird sehr früh aufhören, Dinge zu konfigurieren. Siehe cloudinit.readthedocs.io/en/latest/topics/boot.html
Ludovic Kuty
Klar, deshalb habe ich gesagt, es würde es deaktivieren .
Pierz
1
Ja, du hast recht. Mein Kommentar ist nutzlos.
Ludovic Kuty
6

Unter 14.04 können Sie dpkg-reconfigure verwenden, um cloud-init folgendermaßen zu deaktivieren:

echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg
sudo dpkg-reconfigure -f noninteractive cloud-init

oder verwenden Sie einfach sudo dpkg-reconfigure cloud-init, um es interaktiv zu tun.

m1keil
quelle
6

Dies funktionierte für mich in Ubuntu Server 18.04.1 LST

  1. $ echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg

  2. $ sudo apt-get purge cloud-init

  3. $ sudo rm -rf /etc/cloud/; sudo rm -rf /var/lib/cloud/

  4. $ reboot

Viel Glück.

Lion Gates
quelle
1
"Ja wirklich?" Eine Datei ändern, die Sie zwei Schritte später löschen? Scheint, als könnten Sie den ersten Schritt überspringen.
Enno Gröper
2

Cloud Init dient zum Konfigurieren des Netzwerks und kann in verschiedenen Phasen gestoppt werden. In neueren Versionen können Sie Cloud Init in der ersten Phase deaktivieren, indem Sie sicherstellen, dass die folgende Datei vorhanden ist:

/etc/cloud/cloud-init.disabled

oder zu einem späteren Zeitpunkt, indem Sie sicherstellen, dass die Datei /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgmit dem folgenden Inhalt vorhanden ist:

network: {config: disabled}

Sie können diesen Befehl dafür verwenden:

$ sudo echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Diese Informationen finden Sie in den Kopfkommentaren von /etc/netplan/50-cloud-init.yaml, die teilweise wie folgt lauten:

# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}

Dies stammt aus der Datei in Ubuntu 18.04 LTS und ist wahrscheinlich auch für spätere Versionen gültig.

code_dredd
quelle
IMHO deaktiviert es nur seinen Netzwerkkonfigurationsteil. Damit ist es nicht genug.
Ludovic Kuty
@LudovicKuty Genau dafür gibt es cloud-init: Dinge konfigurieren. Wenn Sie also nicht mehr versuchen, Dinge zu konfigurieren, haben Sie Ihr Ziel erreicht und es reicht aus, damit es Ihnen nicht im Weg steht. Wenn Sie darauf bestehen, dass dies nicht der Fall ist, erklären Sie bitte genau, was "genug" wäre.
Code_dredd
Möglicherweise wird weiterhin versucht, andere Dinge als das Netzwerk zu konfigurieren. IMHO wollte das OP es komplett deaktivieren. Beachten Sie, dass diese Granularität in anderen Fällen interessant sein kann.
Ludovic Kuty
@LudovicKuty Ihre Kommentare wirken spekulativ ("IMHO", "es könnte ..." usw.). Wenn Sie nicht nachweisen können, dass die Dokumentation falsch ist und weiterhin versucht, Dinge zu tun, nachdem Sie dazu aufgefordert wurden, denke ich, dass dies nicht viel mehr ist, und in diesem Fall sollten Sie besser einen Fehler melden . Dies hat jedes Mal gereicht, wenn ich es auf meinen Servern getan habe.
Code_dredd
Sehen Sie sich cloudinit.readthedocs.io/de/latest/topics/boot.html vs cloudinit.readthedocs.io/de/latest/topics/network-config.html an . Sie kritisieren mein "IMHO" und "might" und schreiben "die richtige Methode zum Deaktivieren von Cloud Init ist mit diesem Befehl", aber Sie sollten "IMHO" hinzugefügt haben, da dies nicht die richtige Methode ist.
Ludovic Kuty