Как избавиться от cloud-init?

20

Я использую образ Ubuntu 14.04 в качестве базового блока для vagrant. К сожалению, этот базовый блок содержит cloud-init, который вызывает много проблем при запуске компьютера: https://github.com/mitchellh/vagrant/issues/3860

Я не использую свою машину в облаке, поэтому мне это не нужно. Я хоть набрал:

sudo apt-get remove cloud-init

решит мои проблемы, но машина все еще тратит около 3 минут на запуск, пытаясь настроить то, что мне не нужно.

Я вижу там несколько файлов, связанных с облачным инициализацией /etc/init(например cloud-init.conf, cloud-final.confи cloud-config.confт. Д.). Я мог бы удалить их, но я не уверен, что это безопасно.

Я также установил, rcconfчтобы проверить все сценарии запуска, но я не могу найти там ничего, связанного с cloud-init. Есть идеи?

mnowotka
источник

Ответы:

12

В соответствии с документами cloud-init способ его отключения:

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

И / или установить cloud-init=disabledв командной строке ядра, если она включена таким образом.

Пирз
источник
Обратите внимание, что это не удаляет его. Это все еще там, но это прекратит пытаться настроить вещи на очень ранней стадии. См. Cloudinit.readthedocs.io/en/latest/topics/boot.html
Людовик Куты
Конечно, именно поэтому я сказал, что это отключит его.
Pierz
1
Да ты прав. Мой комментарий бесполезен.
Людовик Куты
6

14 апреля вы можете использовать dpkg -configure для отключения cloud-init следующим образом:

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

или просто используйте, sudo dpkg-reconfigure cloud-initчтобы сделать это в интерактивном режиме.

m1keil
источник
6

Это работало для меня в 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

Удачи.

Львиные Ворота
источник
1
В самом деле? Изменить файл, который вы удалите два шага позже? Похоже, вы можете пропустить первый шаг.
Энно Грёпер
2

Cloud Init предназначен для настройки сети, и его можно остановить на разных этапах. В последних версиях вы можете отключить Cloud Init на первом этапе, убедившись, что существует следующий файл:

/etc/cloud/cloud-init.disabled

или на более позднем этапе, убедившись, что файл /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgсуществует со следующим содержанием:

network: {config: disabled}

Вы можете использовать эту команду для этого:

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

Эту информацию можно найти в комментариях к заголовку /etc/netplan/50-cloud-init.yaml, которые частично читаются следующим образом:

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

Это из файла в Ubuntu 18.04 LTS и, вероятно, также будет действовать для более поздних выпусков.

code_dredd
источник
ИМХО, он отключает только часть конфигурации сети. Таким образом, этого недостаточно.
Людовик Куты
@LudovicKuty Это именно то, что должен сделать cloud-init: настроить вещи. Таким образом, если вы перестаете пытаться что-то настраивать, вы достигли своей цели, и этого достаточно, чтобы она не мешала вам. Если вы настаиваете, что это не так, то, пожалуйста, объясните, что именно «достаточно» будет.
code_dredd
Возможно, он все еще пытается настроить другие вещи, кроме сети. ИМХО ОП хотел полностью его отключить. Обратите внимание, что эта гранулярность может быть интересна в других случаях.
Людовик Куты
@LudovicKuty Ваши комментарии кажутся спекулятивными («ИМХО», «это может ...» и т. Д.). Если вы не можете доказать, что документация неверна и что она продолжает что-то пробовать после того, как мне сказали, что нет, я не думаю, что есть что-то еще, и в этом случае вам лучше сообщить об ошибке им , Этого было достаточно каждый раз, когда я делал это на своих серверах.
code_dredd
Перейдите на страницу cloudinit.readthedocs.io/en/latest/topics/boot.html против cloudinit.readthedocs.io/en/latest/topics/network-config.html . Вы критикуете мои «ИМХО» и «могущество» и пишете «правильный способ отключить Cloud Init с помощью этой команды», но вы должны были добавить «ИМХО», поскольку это неправильный способ сделать это.
Людовик Куты