この記事の内容は、Linux タイプのイメージをインポートする際に、イメージ ソースの設定を確実に行うための、cloud-init のインストールに関するものです。必要な方は参考にしていただければ幸いです。あなたは助けてくれました。
cloud-init のインストール
既存のイメージを使用して ECS インスタンスを作成する必要がある場合は、イメージのインポート機能を使用して構成を完了できます。 Linux タイプのイメージをインポートする場合、インポートされたイメージのホスト名、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 公式 Web サイトから 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:
トラブルシューティング# #異なるイメージには異なるライブラリが含まれていない可能性があります。インストール後、上記の手順 4 を再度繰り返します。
six ライブラリと oauthlib ライブラリが欠落していますインストール プロセス中に次のメッセージが表示される場合は、Python に six ライブラリが欠落していることを意味します。 pip: pip install six を使用して six ライブラリをインストールできます。File "/root/cloud-init/cloudinit/log.py", line 19, in <module> import six ImportError: No module named s )
File "/root/cloud-init/cloudinit/url_helper.py", line 20, in <module> import oauthlib.oauth1 as oauth1 ImportError: No module named oauthlib.oaut )
#次のステップ
カスタム イメージをインポートできます。
以上がLinux タイプのイメージをインポートするときにイメージ ソースの構成が成功することを確認するには、cloud-init をインストールする必要があります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。