這篇文章帶給大家的內容是關於為了保證導入Linux類型鏡像時的鏡像來源配置成功應該安裝cloud-init,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
安裝 cloud-init
如果您需要使用已有鏡像建立ECS實例,可以透過匯入鏡像功能完成設定。在匯入Linux類型映像時,為了確保匯入的鏡像hostname、NTP和Yum來源配置成功,建議您預先在來源伺服器、虛擬機器或雲端主機上安裝cloud-init。
注意事項
目前,支援安裝cloud-init的Linux發行版包括CentOS、Debian、Fedora、FreeBSD、Gentoo、RHEL( Red Hat Enterprise Linux)、SLES(SUSE Linux Enterprise Server)和Ubuntu。
若您的來源伺服器、虛擬機器或雲端主機已經安裝了cloud-init,您需要確認cloud-init版本號高於0.7.9,包含低版cloud-init的鏡像會造成相關實例配置失敗,例如NTP、HostName 和Yum等。
登入來源伺服器、虛擬機器或雲端主機。
執行 cloud-init --version 查詢cloud-init版本。
如果您的cloud-init版本號高於0.7.9,表示該版本可用。否則您需要 安裝cloud-init。
前提條件
安裝cloud-init之前,您的來源伺服器、虛擬機器或雲端主機必須安裝下列軟體。
git:下載cloud-init原始碼套件
yum安裝方式:yum install git
Python2.7:cloud-init運作和安裝的基礎
yum安裝方式:yum install python
pip:安裝cloud-init依賴的Python庫
yum安裝方式:yum install python-pip
此處列舉了yum安裝方式。 zypper 或 apt-get 的套件管理器安裝方式與 yum 安裝方式類似。
安裝cloud-init
您可以依照下列步驟安裝cloud-init:
登入待匯入映像的來源伺服器、虛擬機器或雲端主機。
執行 git clone https://git.launchpad.net/cloud-init 從cloud-init官網下載cloud-init原始碼包。
運行 cd cloud-init 進入cloud-init目錄。
執行 python setup.py install 安裝cloud-init的安裝檔setup.py。
執行 vi /etc/cloud/cloud.cfg 修改設定檔cloud.cfg。
將cloud_init_modules 之前的設定修改成如下:
# Example datasource config # The top level settings are used as module # and system configuration. # A set of users which may be applied and/or used by various modules # when a 'default' entry is found it will reference the 'default_user' # from the distro configuration specified below users: - default user: name: root lock_passwd: False # If this is set, 'root' will not be able to ssh in and they # will get a message to login instead as the above $user disable_root: false # This will cause the set+update hostname module to not operate (if true) preserve_hostname: false syslog_fix_perms: root:root datasource_list: [ AliYun ] # Example datasource config datasource: AliYun: support_xen: false timeout: 5 # (defaults to 50 seconds) max_wait: 60 # (defaults to 120 seconds) # metadata_urls: [ 'blah.com' ] # The modules that run in the 'init' stage cloud_init_modules:
##排查故障
#不同鏡像缺少的庫可能不同,您都可以透過pip安裝,安裝完之後再次重複以上步驟4。 缺少six和oauthlib庫安裝過程中,如果出現以下訊息,表示Python缺少six函式庫。您可以使用pip安裝six庫:pip install six。File "/root/cloud-init/cloudinit/log.py", line 19, in <module> import six ImportError: No module named s )安裝過程中,如果出現以下訊息,表示Python缺少oauthlib函式庫。您可以使用pip安裝oauthlib庫:pip install oauthlib。
File "/root/cloud-init/cloudinit/url_helper.py", line 20, in <module> import oauthlib.oauth1 as oauth1 ImportError: No module named oauthlib.oaut )提示錯誤時沒有明確缺少的依賴函式庫如果安裝報錯時,沒有明確提示缺少哪些依賴函式庫時,你可以根據cloud-init的requirements.txt檔案裡顯示的函式庫,並執行pip install -r requirements.txt 安裝所有依賴函式庫。
後續步驟
您可以 匯入自訂映像。以上是為了確保導入Linux類型鏡像時的鏡像來源配置成功應該安裝cloud-init的詳細內容。更多資訊請關注PHP中文網其他相關文章!