Из запущенного экземпляра ec2 я создал AMI. Я использовал этот AMI для создания нового экземпляра ec2. После создания экземпляра я попытался ввести в него sh, используя ключ, который я установил при создании экземпляра, но он не сработал. Я попробовал «старый» ключ (тот, который использовался для s sh в экземпляре, из которого я создал AMI), и с этим я смог войти в систему.
Я использовал cloud-init init
и cloud-init start
но я получаю следующую ошибку:
Traceback (most recent call last):
File "/usr/bin/cloud-init", line 45, in <module>
from cloudinit import netinfo
File "/usr/lib/python2.7/dist-packages/cloudinit/netinfo.py", line 23, in <module>
import cloudinit.util as util
File "/usr/lib/python2.7/dist-packages/cloudinit/util.py", line 62, in <module>
from cloudinit import url_helper
File "/usr/lib/python2.7/dist-packages/cloudinit/url_helper.py", line 30, in <module>
import requests
File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 51, in <module>
from . import utils
File "/usr/lib/python2.7/dist-packages/requests/utils.py", line 23, in <module>
from .compat import parse_http_list as _parse_list_header
File "/usr/lib/python2.7/dist-packages/requests/compat.py", line 7, in <module>
import chardet
ImportError: No module named chardet
Я вижу, что установлен модуль chardet
:
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ pip list --format=columns | grep chardet
chardet 2.0.1
Я думаю, что, поскольку я не могу запустить cloud-init, Ключ s sh не обновляется, поэтому я смог войти, используя "старый" s sh, но не новый (тот, который я установил при создании экземпляра).
Как исправить this?
Позже edit
После некоторых исследований я увидел, что в папке dist-package был только файл .egg-info. Я смог исправить это, запустив pip uninstall chardet
и снова установив