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

本篇文章給大家帶來的內容是關于為了保證導入linux類型鏡像時的鏡像源配置成功應該安裝cloud-init,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

安裝 cloud-init

如果您需要使用已有鏡像創建ECS實例,可以通過導入鏡像功能完成配置。在導入linux類型鏡像時,為了保證導入的鏡像hostname、NTP和Yum源配置成功,建議您預先在源服務器、虛擬機或者云主機上安裝cloud-init。

注意事項

目前,支持安裝cloud-init的Linux發行版包括centosdebian、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??)</module>

安裝過程中,如果出現以下信息,表示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??)</module>

提示錯誤時沒有明確缺少的依賴庫

如果安裝報錯時,沒有明確提示缺少哪些依賴庫時,您可以根據cloud-init的requirements.txt文件里顯示的庫,并運行 pip install -r requirements.txt 安裝所有依賴庫。

后續步驟

您可以 導入自定義鏡像。

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享