首頁>技術>

這裡是純粹的IT知識分享頻道,關注知識,創造價值。

本期內容讓你知道如何在非雲環境Ubuntu 20.04 Server上關閉cloud-init功能。

什麼是cloud-init

業界自從雲計算等概念的提出,Ubuntu18.10官方釋出的安裝ISO映象,“預設”安裝並啟動了cloud-init。它是為解決雲環境中,對新建虛擬機器的初始化配置問題,所提供的一個解決方案。它可以透過元資料服務來為批次建立的虛擬機器設定主機名,配置建立什麼使用者,使用者的密碼,設定root是否能ssh登入,配置啟動VM時,安裝什麼軟體,以及執行什麼指令碼,甚至磁碟如何分割槽,分多大,格式化為什麼檔案系統,是否可自動增長等等,它都可以透過定義配置檔案來實現。

它的工作原理共分為4個步驟:

local階段

開機時,cloud-init-local 服務最先啟動,它會試圖從元資料服務哪裡獲取IP的配置資訊,若沒有找到IP資訊,就設定為dhcp自動獲取IP。可以使用

#sudo dpkg-reconfigure cloud-init

命令檢視都有那些元資料來源。在ubuntu上,預設啟用了所有元資料服務,如果不是用雲上元資料來源,那麼可以使用本地的元資料服務,即/var/lib/cloud/seed/ 下面的本地磁碟檔案來儲存安裝系統時,根據你的設定,自動生成的元資料配置檔案資訊。當然你也可以全部都不使用。

init、config和final階段

預設情況下,/etc/cloud/cloud.cfg檔案中定義了這三個階段作業系統啟動時需要做的事情,每個任務都是以模組(module)形式設定的。雲環境下Ubuntu虛擬機器啟動時 ,所有定製化專案都可在配置檔案裡三個階段設定,但每個配置項,具體要做什麼,就是由元資料(metadata)來決定了。如下圖所示:

上圖cloud.cfg 中指定了 set-passwords這個 module,則意味著 cloud-int 會設定雲Ubuntu的密碼,而具體設定成什麼密碼則由源資料中passwords引數決定。

怎麼關閉cloud-init

當我們使用Ubuntu20.04等官方server版本進行安裝本地物理機器,尤其是升級原本伺服器的版本時候,會遇到自動開啟cloud-init的問題,造成一些對使用者來說莫名其妙的問題,很不方便。但是我們又不想或者不允許回退到之前的版本的時候,有沒有辦法在自動開啟此功能的釋出版本中,比如Ubuntu20.04之後版本,不使用這個功能呢?答案是肯定的。若你是非雲環境,完全可以關閉它。執行如下的命令即可關閉cloud-init,請注意執行過程中需要你輸入密碼。

停止當前執行的cloud-init相關服務
#systemctl stop cloud-init-local cloud-init cloud-config cloud-final
關閉服務自啟動功能,下次機器重啟cloud-init相關服務則不會自動啟動
#systemctl disable cloud-init-local cloud-init cloud-config cloud-final
檢視當前服務自啟動配置狀態,如果全部是disabled,則說明自啟動被禁止成功
#systemctl is-enabled cloud-init-local cloud-init cloud-config cloud-final
重新啟動機器
#reboot

Okay,感謝你的閱讀,恭喜你。您已經知道如何在非雲環境下Ubuntu 20.04 Server上關閉cloud-init功能了。

90
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 平臺千萬級訂單推送實現