インポートされた Linux イメージのホスト名、NTP ソース、および yum ソースが正常に設定されることを保証するために、インポートの前にオンプレミスサーバー、仮想マシン、またはクラウドホストに cloud-init をインストールすることを推奨します。
制限事項
-
現在、cloud-init は次の Linux OS をサポートしています。CentOS、Debian、Fedora、FreeBSD、Gentoo、RHEL (Red Hat Enterprise Linux)、SLES (SUSE Linux Enterprise Server)、Ubuntu。
-
オンプレミスサーバー、VM、クラウドホストに cloud-init がインストールされている場合は、cloud-init のバージョンが 0.7.9 以降であることを確認します。これ以前の cloud-init を使用しているイメージでは、 NTP、ホスト名、および yum で、インスタンスの設定が失敗する可能性があります。 次の手順で cloud-init のバージョンを確認します。
- オンプレミスサーバー、VM、またはクラウドホストにログインします。
cloud-init --version
を実行して、cloud-init のバージョンを照会します。バージョンが 0.7.9 以前の場合は、「 cloud-init のインストール方法」をご参照ください。
前提条件
オンプレミスサーバー、VM、またはクラウドホストに以下のソフトウェアがインストールされている必要があります。
- 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 をインストールします。
- オンプレミスサーバー、VM、またはクラウドホストにログインします。
git clone https://git.launchpad.net/cloud-init
を実行して、 cloud-init ソースコードパッケージをダウンロードします。cd cloud-init
を実行して、cloud-init ディレクトリに移動します。python setup.py install
を実行して、 setup.py をインストールします。setup.py は cloud-init のインストールファイルです。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 logon 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 install six
を実行し、 pip を使って six ライブラリをインストールします。File "/root/cloud-init/cloudinit/log.py", line 19, in <module> import six ImportError: No module named s )
- インストール中に次のメッセージが表示された場合は、Python に oauthlib ライブラリがありません。
pip install oauthlib
を実行して pip を使って oauthlib ライブラリをインストールします。File "/root/cloud-init/cloudinit/url_helper.py", line 20, in <module> import oauthlib.oauth1 as oauth1 ImportError: No module named oauthlib.oaut )
pip install -r requirements.txt
を実行して、cloud-init の requirements.txt ファイルのライブラリ情報に従って、すべての依存関係のあるライブラリをインストールできます。
次のステップ
イメージを ECS にインポートできます。
参照
cloud-init Alibaba Cloud (AliYun)