Ошибка при запросе неизвестного параметра при импорте ova-изображения в aws после официального дублирования

Ошибка при запросе параметра unknow при импорте ova-изображения в aws после официального дублирования.
Мне нужно развернуть мою текущую базовую коробку Debian, полностью подготовленную для AWS, со всеми конфигурациями и программным обеспечением, которые уже запущены здесь на моем производстве.
Документация находится по адресу: vmimport-image

При обращении за помощью в командной строке список практически одинаковых параметров:

aws ec2 import-image help

      [--architecture <value>]
      [--client-data <value>]
      [--client-token <value>]
      [--description <value>]
      [--disk-containers <value>]
      [--dry-run | --no-dry-run]
      [--encrypted | --no-encrypted]
      [--hypervisor <value>]
      [--kms-key-id <value>]
      [--license-type <value>]
      [--platform <value>]
      [--role-name <value>]
      [--cli-input-json <value>]
      [--generate-cli-skeleton <value>]

Сама команда, которую я ставлю на терминал:

# It is the 'first one' referred below    
cfgAmi=$(cat <<'EOF'
    [
        {
            "Description": "mySystem",
            "Format": "ova", 
            "UserBucket": {
                "S3Bucket": "mySystemBucket", 
                "S3Key": "mySystem.ova"
            }
        }
    ]
    EOF
    )

При использовании флага "всухую" для проверки он сообщает (запрос был бы выполнен успешно, но установлен флаг DryRun):

echo $cfgAmi | aws ec2 import-image \
--dry-run \
--description "mySystem" \
--architecture x86_64 \
--hypervisor xen \
--platform Linux \
--role-name root \
--disk-containers 

Но при выполнении команды действительно предпринять действие:

echo $cfgAmi | aws ec2 import-image \
--description "mySystem" \
--architecture x86_64 \
--hypervisor xen \
--platform Linux \
--role-name root \
--disk-containers 

Сообщение об ошибке:

An error occurred (InvalidParameter) when 
calling the ImportImage operation: 
Missing required parameter (disk-images)

disk-images это даже не является возможным параметром.
UserBucket ключ выше не для справки на основе терминала, но на HTML-документации, которую я сказал выше.

Ошибка остается той же, когда, следуя одной неофициальной статье, которую я нашел, обновил конфигурацию выше, чтобы:

# run again the 'first one' to 
# populate $cfgAmi variable then:
cfgAmi=$(cat <<EOF
{
    "Description": "mySystem",
    "DiskContainers": $cfgAmi
}
EOF
)

или же

# run again the 'first one' to 
# populate $cfgAmi variable then:
cfgAmi=$(cat <<EOF
{
    "description": "mySystem",
    "disk-containers": $cfgAmi
}
EOF
)

Для любого из вышеперечисленных, если в этот момент я изменил команду выполнения на:

aws ec2 import-image --cli-input-json $cfgAmi

Я получаю ошибку:

Unknown options: \
"mySystem",, \
"disk-containers":, \
[, {, "Description":, \
"mySystem",, "Format":, \
"ova",, "UserBucket":, \
{, "S3Bucket":, "mySystemBucket",, \
"S3Key":, "mySystem.ova", \
}, }, ], }, "description":

Когда используешь:

aws ec2 import-image --cli-input-json "{ 
    \"description\": \"mySystem\", 
    \"disk-containers\": [ { 
        \"Description\": \"mySystem\", 
        \"Format\": \"ova\", 
        \"UserBucket\": { 
            \"S3Bucket\": \"mySystemBucket\", 
            \"S3Key\": \"mySystem.ova\" 
        } 
    } ] 
}"

Получите ошибку:

Unknown parameter in input: 
"disk-containers", must be one of: 
Architecture, ClientData, ClientToken, 
Description, DiskContainers, DryRun, 
Encrypted, Hypervisor, KmsKeyId, 
LicenseType, Platform, RoleName

Unknown parameter in input: 
"description", must be one of: 
Architecture, ClientData, ClientToken, 
Description, DiskContainers, DryRun, 
Encrypted, Hypervisor, KmsKeyId, 
LicenseType, Platform, RoleName

Но при использовании:

cfgAmi=$(cat <<'EOF'
          "[
            {
              'Description': 'mySystem',
              'Format': 'ova',
              'UserBucket': {
                'S3Bucket': 'mySystemBucket',
                'S3Key': 'mySystem.ova'
              }
            }
          ]"
EOF
)


echo $cfgAmi | aws ec2 import-image \
--Architecture x86_64 \
--Description "mySystem" \
--Hypervisor xen \
--LicenseType Auto \
--platform Linux \
--RoleName root \
--DiskContainers

Вернуть ошибку:

Unknown options: \
--Architecture, \
--Description, \
mySystem, \
--Hypervisor, \
xen, \
--LicenseType, \
Auto, \
--RoleName, \
root, \
--DiskContainers, \
x86_64

И при выполнении:

aws ec2 import-image \
--Architecture x86_64 \
--Description "mySystem" \
--Hypervisor xen \
--LicenseType Auto \
--platform Linux \
--RoleName root \
--DiskContainers "[ { 
    'Description': 'mySystem', 
    'Format': 'ova', 
    'UserBucket': { 
        'S3Bucket': 'mySystemBucket', 
        'S3Key': 'mySystem.ova' 
    } 
} ]"

Есть ошибка:

Unknown options: \
--Architecture, \
--Description, \
mySystem, \
--Hypervisor, \
xen, \
--LicenseType, \
Auto, \
--RoleName, \
root, \
--DiskContainers, \
[ { 'Description': 'mySystem', 
    'Format': 'ova', 'UserBucket': { 
        'S3Bucket': 'mySystemBucket', 
        'S3Key': 'mySystem.ova' 
    } } ], x86_64

Когда я загрузил ту же машину, что и vmdk, и попытался сделать тот же процесс с другим форматом, как показано ниже:

aws ec2 import-image \
    --Architecture x86_64 \
    --Description "mysystem" \
    --Hypervisor xen \
    --LicenseType Auto \
    --platform Linux \
    --RoleName root \
    --DiskContainers "[ { 
        'Description': 'mysystem', 
        'Format': 'vmdk', 
        'UserBucket': { 
            'S3Bucket': 'mySystemBucket', 
            'S3Key': 'mysystem.vmdk' 
        } 
    } ]"

Получите ошибку:

Unknown options: \
    --Architecture, \
    --Description, \
    mysystem, \
    --Hypervisor, \
    xen, \
    --LicenseType, \
    Auto, \
    --RoleName, \
    root, \
    --DiskContainers, [ { 
        'Description': 'mysystem', 
        'Format': 'vmdk', 
        'UserBucket': { 
            'S3Bucket': 'mySystemBucket', \
            'S3Key': 'mysystem.vmdk' 
        } 
        } ], \
    x86_64

Некоторые статьи, рассказывающие об использовании:

  • Aminator от Netflix, но он работает, беря существующий AMI и настраивая его до тех пор, пока не возникнет необходимость повторной загрузки, но нам нужно загрузить наш сервер как полный блок, это простой блок Debian по умолчанию, уже запущенный на нашем производстве и полный с нашими системами, которые у нас есть здесь, многие из этих систем просто не могут быть переустановлены на другую коробку по разным причинам, и если бы это было возможно, мы не стали бы беспокоиться о пользовательском AMI, мы бы просто установили экземпляр AWS по умолчанию с самым простым AMI Debian и установили все заново.

  • У Packer от Hashicorp есть много сборщиков, AMI Builder (экземпляр-хранилище) запрашивает инструмент под названием AMI Tools, который вам нужно скачать с Amazon, и я только что послушал его, и теперь все становится еще более запутанным, поскольку документы AWS не говорят об этом, пока Говоря о том, как развернуть локальную машину как EC2, Packer также, как Aminator, нужен базовый AMI AWS для работы выше и не экспортирует локальный образ Debian по умолчанию, он запрашивает source_ami, что это исходный AMI, используемый в качестве базы для вновь созданного машина.

0 ответов

Другие вопросы по тегам