Làm thế nào để thoát khỏi đám mây-init?


20

Tôi đang sử dụng hình ảnh Ubuntu 14.04 làm hộp cơ sở cho tôi. Thật không may, hộp cơ sở này chứa init-cloud gây ra nhiều sự cố trong quá trình khởi động máy: https://github.com/mitchellh/vagrant/issues/3860

Tôi không sử dụng máy của mình trên đám mây nên tôi không thực sự cần cái này. Tôi mặc dù gõ:

sudo apt-get remove cloud-init

sẽ giải quyết vấn đề của tôi nhưng máy vẫn dành khoảng 3 phút để khởi động cố gắng định cấu hình thứ tôi không cần.

Tôi có thể thấy có aa số các tập tin liên quan cloud-init trong /etc/init(ví dụ cloud-init.conf, cloud-final.conf, cloud-config.confvv). Tôi có thể xóa chúng nhưng tôi không chắc nó có an toàn không.

Tôi cũng đã cài đặt rcconfđể kiểm tra tất cả các tập lệnh starup nhưng tôi không thể tìm thấy bất cứ điều gì liên quan đến cloud-init ở đó. Có ý kiến ​​gì không?

Câu trả lời:


12

Theo các tài liệu trên nền tảng đám mây, cách để vô hiệu hóa nó là:

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

Và / hoặc đặt cloud-init=disabledtrên dòng lệnh kernel nếu nó được kích hoạt theo cách đó.


Lưu ý rằng nó không loại bỏ nó. Nó vẫn ở đó nhưng nó sẽ ngừng cố gắng cấu hình công cụ ở giai đoạn rất sớm. Xem cloudinit.readthedocs.io/en/latest/topics/boot.html
Ludovic Kuty

Chắc chắn đó là lý do tại sao tôi nói nó sẽ vô hiệu hóa nó.
pierz

1
Có bạn đúng. Nhận xét của tôi là vô ích.
Ludovic Kuty

6

Vào ngày 14.04, bạn có thể sử dụng dpkg-cấu hình lại để vô hiệu hóa cloud-init theo cách sau:

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

hoặc chỉ sử dụng sudo dpkg-reconfigure cloud-initđể làm điều đó một cách tương tác.


6

Điều này làm việc cho tôi trong 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

Chúc may mắn.


1
Có thật không? Thay đổi một tập tin bạn xóa hai bước sau? Có vẻ như bạn có thể bỏ qua bước đầu tiên.
Enno Gröper

2

Cloud init có mặt để cấu hình mạng và nó có thể bị dừng ở các giai đoạn khác nhau. Trong các phiên bản gần đây, bạn có thể tắt Cloud init ở giai đoạn đầu tiên bằng cách đảm bảo tồn tại tệp sau:

/etc/cloud/cloud-init.disabled

hoặc ở giai đoạn sau bằng cách đảm bảo tệp /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgtồn tại với nội dung sau:

network: {config: disabled}

Bạn có thể sử dụng lệnh này cho nó:

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

Thông tin này có thể được tìm thấy trong các bình luận tiêu đề của /etc/netplan/50-cloud-init.yaml, phần này được đọc như sau:

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

Đây là từ tệp trong Ubuntu 18.04 LTS và có khả năng cũng hợp lệ cho các bản phát hành sau này.


IMHO, nó chỉ vô hiệu hóa phần cấu hình mạng của nó. Như vậy là chưa đủ.
Ludovic Kuty

@LudovicKuty Đó chính xác là những gì mà cloud-init đang làm: cấu hình mọi thứ. Do đó, nếu bạn khiến nó ngừng cố gắng định cấu hình mọi thứ, bạn đã hoàn thành mục tiêu của mình và nó đủ để khiến nó tránh xa bạn. Nếu bạn khẳng định là không, thì hãy giải thích chính xác "đủ" là gì.
code_dredd

Nó vẫn có thể cố gắng cấu hình những thứ khác ngoài mạng. IMHO OP muốn vô hiệu hóa nó hoàn toàn. Lưu ý rằng độ chi tiết này có thể thú vị trong các trường hợp khác.
Ludovic Kuty

@LudovicKuty Nhận xét của bạn được đưa ra dưới dạng đầu cơ ("IMHO", "nó có thể ...", v.v.). Trừ khi bạn có thể chứng minh rằng tài liệu đó sai và nó vẫn tiếp tục thử mọi thứ sau khi được bảo là không, tôi không nghĩ có nhiều điều này, và trong trường hợp đó, bạn nên báo cáo lỗi cho họ . Điều này là đủ mỗi lần tôi thực hiện nó trong các máy chủ của mình.
code_dredd

Hãy kiểm tra cloudinit.readthedocs.io/en/latest/topics/boot.html vs cloudinit.readthedocs.io/en/latest/topics/network-config.html . Bạn đang chỉ trích "IMHO" và "có thể" của mình và bạn đang viết "cách chính xác để vô hiệu hóa Cloud init là bằng lệnh này" nhưng bạn nên thêm "IMHO" vì đó không phải là cách chính xác để thực hiện.
Ludovic Kuty
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.