首頁 >運維 >linux運維 >為了確保導入Linux類型鏡像時的鏡像來源配置成功應該安裝cloud-init

為了確保導入Linux類型鏡像時的鏡像來源配置成功應該安裝cloud-init

坏嘻嘻
坏嘻嘻原創
2018-09-18 14:40:273021瀏覽

這篇文章帶給大家的內容是關於為了保證導入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。

為了確保導入Linux類型鏡像時的鏡像來源配置成功應該安裝cloud-init

將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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn