Out of host capacity НЕ приговор. Автоматизируем создание инстанса в Oracle Cloud
Создание инстанса с помощью oci + авто скрипт
-
Создать API KEY и получить конфиг Сверху справа кликаешь по профилю -> My profile -> Слева внизу API keys, генеришь новый ключ и копируешь то что он тебе предлагает ~5 строчек, далее это вставляешь в ~/.oci/config
-
Установить oci cli (скачать из релизов)
wget https://github.com/oracle/oci-cli/releases/download/v3.25.1/oci-cli-3.25.1.zip
unzip oci-cli-3.25.1.zip
cd oci-cli
pip3 install oci_cli-3.25.1-py3-none-any.whl
Проверить версию: oci -v
-
Добавить конфиг в ~/.oci/config с именем конфига
-
Добыть tenancy id пользователя в главном меню Identity&Security -> Compartments -> копируем в буфер напротив user
-
Запускаем команду
oci compute instance launch \ --profile SINGAPORE \ --availability-domain "CpiF:AP-SINGAPORE-1-AD-1" \ --compartment-id ocid1.tenancy.oc1..aaaaaaaa22r7fz4pjqsxh7maufncyixdjlr6kustnxtgszdbksyhvq3t4dla \ --image-id ocid1.image.oc1.ap-singapore-1.aaaaaaaa6ihywkz3f7q6zvux3mfncldtoymvdn2wq3xztjjc3x2n6rgbaoaq \ --shape "VM.Standard.A1.Flex" \ --display-name "nameinstance" \ --subnet-id ocid1.subnet.oc1.ap-singapore-1.aaaaaaaaqh6jsv5mphwhrmqvhqnhpfwqopyxndbkx74bevoi33cyyfwg7emq \ --shape-config '{"ocpus":2,"memoryInGBs":12}'
(можно также добавить флаг –debug)
-
Если видим в output команды “message”: “Out of host capacity.” , то значит нет доступных инстансов 7.1-ЕСТЬ ВТОРОЙ ВАРИНТ СМ НИЖЕ) Создаем скрипт и запускаем в крон, и выставляем запуск каждый час
vim /home/dmitry/Downloads/oci.sh
#!/bin/bash
#AMD
#CLOUD_IMAGE="ocid1.image.oc1.ap-singapore-1.aaaaaaaafcxkz2vbsrskuhxyc6nd2w5o2drhth4gurq77wz6rclaj6wcsyra"
#SHAPE_ID="VM.Standard.E2.1.Micro"
#SHAPE_CONFIG='{"ocpus":1,"memoryInGbs":1}'
#ARM
DOMAIN="CpiF:AP-SINGAPORE-1-AD-1"
CLOUD_IMAGE="ocid1.image.oc1.ap-singapore-1.aaaaaaaa6ihywkz3f7q6zvux3mfncldtoymvdn2wq3xztjjc3x2n6rgbaoaq"
SHAPE_ID="VM.Standard.A1.Flex"
SHAPE_CONFIG='{"ocpus":2,"memoryInGbs":12}'
# CREATE SUBNET https://habr.com/ru/articles/541466/
SUBNET_ID="ocid1.subnet.oc1.ap-singapore-1.aaaaaaaaqh6jsv5mphwhrmqvhqnhpfwqopyxndbkx74bevoi33cyyfwg7emq"
RANDOM_NUMBER=$(shuf -i 1-2 -n 1)
INSTANCE_NAME="instance-$RANDOM_NUMBER"
COMPARTMENT_ID="ocid1.tenancy.oc1..aaaaaaaa22r7fz4pjqsxh7maufncyixdjlr6kustnxtgszdbksyhvq3t4dla"
echo "==============================================================="
/usr/bin/date
/usr/bin/oci compute instance launch --profile SINGAPORE --availability-domain $DOMAIN --compartment-id $COMPARTMENT_ID --image-id $CLOUD_IMAGE --shape $SHAPE_ID --display-name "$INSTANCE_NAME" --subnet-id $SUBNET_ID --shape-config $SHAPE_CONFIG --assign-public-ip true --boot-volume-size-in-gbs 100 --metadata '{"ssh_authorized_keys": "ssh-rsa AAAAB3NzaC1yc2EAAlsadhiuUAsgyhjv7194jhJHASGDiugiaNKKUGWbjsakshQkjbvakjjbdjklBASDkljvqwvhkvjvjl13429048sfBJKKABamhjwvAHLVLmnAJKBSJDVLQJVHQWDbjvhadKLAJVSDLADNmnAVCHKAVSjkbkdjajkaLJKAWDknjlckmlknAWLKiuVAWDVkjvkjVASDoivovQWKJBOVIASKDJVKVAD=="}'
echo "==============================================================="
chmod +x /home/dmitry/Downloads/oci.sh
crontab -e
*/10 * * * * /home/dmitry/oci.sh >>/home/dmitry/oci-output-cron.log 2>&1
2>&1 нужно также для перенаправления и ошибок тоже в лог
И обязательно проверяем после
7.2) Можно запускать в tmux! Также будем видеть выхлоп команды
- Так как в команде не прописан security list, который должен быть в json формате и выгружен предварительно, то после успешного создания, заходим в инстанс и проверяем на месте ли секьюрити лист для него
- Проверить список инстансов
oci compute instance list --profile JOHNCHISNOKSY --compartment-id ocid1.tenancy.oc1..aaaaaaaa22r7fz4pjqkljwqber23289aslfjbljv1l
ПОДРОБНО ЕСЛИ НУЖНО СОЗДАТЬ СЕТЬ РУКАМИ https://habr.com/ru/articles/541466/