Что такое slcli в Ubuntu
Обновлено: 21.11.2024
Snap — это популярный менеджер пакетов, который позволяет легко устанавливать программное обеспечение в операционных системах на базе Linux. Он был разработан и поддерживается Canonical. Первоначально Snap был создан для облачных приложений, но с тех пор его поддержка была расширена и теперь включает настольные приложения и устройства IoT. Пакеты, установленные с помощью snap, называются snaps, а служба, поддерживающая snap, называется snapd.
Также включен интерфейс командной строки, который можно использовать для управления различными продуктами и услугами SoftLayer.
В этой статье мы кратко покажем, как установить slcli — инструмент SoftLayer API на основе Python. в Ubuntu с помощью оснастки.
Как установить snapd в Ubuntu
snapd — это служба, которая запускает снимки и управляет ими, включая выполнение автоматических обновлений. Инструкции по установке и информацию о поддерживаемых версиях для каждого из следующих дистрибутивов Linux можно найти здесь.
Если вы используете Ubuntu 16.04 LTS (Xenial Xerus) или более позднюю версию, включая Ubuntu 18.04 LTS (Bionic Beaver), Ubuntu 18.10 (Cosmic Cuttlefish) и Ubuntu 19.10 (Eoan Ermine), вам не нужно ничего делать. Snap уже установлен и готов к работе.
Для версий Ubuntu между 14.04 LTS (Trusty Tahr) и 15.10 (Wily Werewolf), а также версий Ubuntu, которые не включают snap по умолчанию, snap можно установить из Центра программного обеспечения Ubuntu, выполнив поиск snapd .
Кроме того, snapd можно установить из командной строки:
После выполнения команды обновите системные пути для оснастки, выйдя из системы и войдя снова, или перезагрузив компьютер.
Для тех, кому нужно знать, какая версия Ubuntu у вас установлена, откройте «Настройки системы» и выберите «Подробности». Либо введите в командной строке lsb_release -a .
Убедитесь, что snapd запущен
Перед установкой slcli проверьте состояние службы snapd, выполнив следующую команду:
В нашем случае это показывает, что служба snapd уже установлена и работает без проблем.
Установите оснастку slcli — инструмент SoftLayer API на основе Python.
Войдите в систему Ubuntu, а затем откройте терминал, нажав кнопки CTRL+ALT+T. Запустите приведенную ниже команду, чтобы установить пакет оснастки slcli. Пакет моментальных снимков slcli опубликован SoftLayer и был проверен командой Snap как безопасный. На момент написания этой статьи текущая версия slcli — 5.9.7-66-gcdef7d63. Программное обеспечение находится под лицензией MIT.
Здесь требуется аргумент --classic, так как slcli требуется полный доступ к вашей системе, чтобы быть полезным, поэтому ему требуется «классическое ограничение» snap. По умолчанию моментальные снимки гораздо более ограничены в своих возможностях доступа к вашему диску и сети, и они должны запрашивать у вас специальный доступ, когда им это нужно.
Обратите внимание, что пакет slcli, установленный с помощью snap, обновляется автоматически, а это означает, что вам не нужно ничего делать, чтобы использовать последнюю версию slcli, в отличие от apt или yum.
Заключение
Более подробную информацию о slcli можно найти на официальном сайте. Snap — это гораздо больше, чем просто новый формат пакетов Linux — это сложный способ доставки сложных приложений в любую среду рабочего стола! Чтобы начать работу со Snap, узнайте об их функциях безопасности, транзакциях и многом другом на справочной странице или в расширенном руководстве по использованию Snap от Canonical. Помимо slcli — инструмента SoftLayer API на основе Python, существует множество отличных снимков. доступны в магазине для вашего рабочего стола Linux, например vscode, atom, slack и Spotify.
Автор: Куб Корнелл Технический энтузиаст, движимый любопытством. Библиофил, обожающий путешествовать. Выпускник инженерного факультета, который любит программировать и писать о новых технологиях. Не могу без кофе.
В версии 5.4.0 softlayer-python появилась новая команда slcli для размещения заказов облачного сервера IaaS с использованием API. Эту команду также можно использовать для размещения заказов на продукты, которые обычно заказываются через клиентский портал инфраструктуры IBM Cloud.
В версии 5.4.0 softlayer-python появилась новая команда slcli для размещения заказов облачного сервера IaaS с использованием API. Эту команду также можно использовать для размещения заказов на продукты, которые обычно заказываются через клиентский портал инфраструктуры IBM Cloud. Есть несколько помощников, которые помогут вам в создании определенного заказа. Из этих примеров вы узнаете, как:
- Создать заказ
- Понимать структуру заказа.
- Поиск серверных пакетов
- Определение категорий элементов
- Подтвердить заказ
- Разместить заказ
- Разместите заказ программно с помощью Python.
Создать заказ
Шаг 1. Изучите структуру заказа
В API SoftLayer заказ может состоять из нескольких контейнеров заказов. Для простоты интерфейс командной строки заказов работает только с одним контейнером заказов, поэтому в этих примерах и пояснениях термины «контейнер заказов» и «заказ» являются синонимами.
Упаковка — это первый компонент, на который следует обращать внимание при размещении заказа. Пакеты разделены между различными продуктами верхнего уровня, доступными для заказа в SoftLayer. Некоторые примеры пакетов: CLOUD_SERVER для VSI, BARE_METAL_SERVER для серверов без ПО и STORAGE_AS_A_SERVICE_STAAS для Storage-as-a-Service. Внутри пакета есть предметы, которые подразделяются на категории. Некоторые пакеты имеют предустановки для вашего удобства, а другие требуют, чтобы вы указывали элементы по отдельности. Если требуется категория пакета, для заказа пакета необходимо выбрать элемент из этой категории. В зависимости от категории элементы внутри категории являются взаимоисключающими (например, вы не можете заказать одновременно 8 ГБ и 16 ГБ ОЗУ для VSI). Наконец, каждый заказ должен иметь связанное местоположение (центр обработки данных).
При использовании интерфейса командной строки заказа мы строим заказ сверху вниз (набор товаров). Вы можете использовать список пакетов заказа slcli, чтобы найти пакет, который вы хотите заказать. Опция –keyword предназначена для выполнения простого поиска для фильтрации пакетов, что упрощает поиск нужного пакета. Для этого примера мы создадим заказ на сервер без ПО.
Шаг 2. Поиск пакетов сервера
Мы можем использовать ключевое слово "сервер" для поиска серверных пакетов:
Для этого заказа мы будем использовать пакет BARE_METAL_SERVER. Серверы Bare Metal предлагают предустановленные конфигурации, поэтому мы найдем и используем одну из них для нашего заказа. Команде preset-list требуется ключевое имя пакета (BARE_METAL_SERVER) для вывода списка пресетов. Существует также параметр –keyword для фильтрации возвращаемых пресетов, если это необходимо.
Шаг 3. Определите категории элементов
В этом примере мы будем использовать предустановку S1270_32GB_1X1TBSATA_NORAID. Теперь давайте найдем категории товаров, которые нам нужно установить для заказа на «голое железо».
Это минимальный заказ, поэтому мы указываем только те элементы, которые необходимы для заказа. Чтобы найти элементы, которые нам необходимо заполнить, мы можем использовать параметр –required в команде category-list.
Большинство этих категорий уже включены в предустановку (Сервер, ОЗУ и контроллер диска, Первый жесткий диск). Если вы когда-либо сомневались в том, какие обязательные категории могут отсутствовать в вашем заказе, вы можете использовать команду размещения с флагом –verify, и если какие-либо категории отсутствуют, они будут распечатаны для вас.
Теперь мы можем выбрать остальные товары для нашего заказа с помощью команды item-list. Обычно в пакете есть из чего выбрать, поэтому рекомендуется использовать параметр –category, чтобы получить элементы только из интересующей вас категории.
В некоторых из этих категорий есть только 1 элемент, поэтому выбор для этих элементов невелик. Для этого заказа мы будем использовать следующие элементы:
- OS_CENTOS_7_X_64_BIT
- ПОЛОСА WIDTH_0_GB_2
- 1_GBPS_PUBLIC_PRIVATE_NETWORK_UPLINKS
- REBOOT_KVM_OVER_IP, 1_IP_АДРЕС
- НЕОГРАНИЧЕННЫЙ_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT
Шаг 4. Подтвердите заказ
Теперь, когда мы знаем подробности о сервере без операционной системы, который мы будем заказывать, мы можем попробовать проверить заказ, который мы хотим сделать. Команда place принимает всю информацию о заказе и попытается проверить заказ (если указано –verify) или разместить заказ. Для проверки нашего заказа нам необходима следующая информация:
- Пакет (BARE_METAL_SERVER)
- Местоположение (DALLAS13)
- Срок оплаты (почасовой)
- Предустановка (S1270_32GB_1X1TBSATA_NORAID)
- Тип (SoftLayer_Container_Product_Order_Hardware_Server)
Примечание. Информация о типе используется API заказа для определения данных, необходимых в заказе. Для серверов без операционной системы этот тип — SoftLayer_Container_Product_Order_Hardware_Server. Эти типы можно найти в SLDN, и обычно они начинаются с SoftLayer_Container_Product_Order.
Вывод покажет вам каждый заказываемый товар, а также стоимость, связанную с этим товаром. Если заказ проходит проверку, это означает, что конфликтующих элементов нет, и во всех необходимых категориях есть элемент, указанный в заказе.
Шаг 5. Разместите заказ
Следующий шаг – размещение заказа.
При размещении заказа требуются дополнительные данные в зависимости от сложного типа.В этом случае для серверов Bare Metal требуются дополнительные данные об оборудовании, чтобы указать имя хоста и домен сервера. Это указывается с помощью опции –extras. Дополнительные элементы указываются в виде строки в кодировке JSON. Согласно сообщению об ошибке, нам нужно указать свойство оборудования в наших дополнениях с именем хоста и доменом сервера. Структура JSON будет следующей:
Теперь мы можем разместить заказ с необходимыми дополнительными данными.
Теперь мы заказали сервер без ПО!
Разместите заказ программно с помощью Python
Теперь, когда мы использовали интерфейс командной строки для создания заказа с пакетом и необходимыми товарами, мы можем преобразовать этот заказ в код Python и разместить заказ программным способом.
Безопасность ключевых имен элементов
Использование названий товаров – более сложный способ размещения заказов. Идентификаторы предметов могут меняться, а заказы, размещенные с жестко закодированными идентификаторами, могут не работать постоянно. Ключевые имена позволят ордерам работать согласованно, поскольку идентификаторы цен для ордера извлекаются для вас динамически.
Примечание. Если элемент удален из каталога заказов из-за устаревания, заказы все равно необходимо будет обновить, чтобы использовать ключевое имя более актуального элемента.
Преобразование вызовов CLI в код Python
Если мы возьмем наш предыдущий пример создания сервера без операционной системы в CLI, мы можем очень легко преобразовать его в код Python. Начиная с версии 3.4.0 softlayer-python, в диспетчер заказов добавлены функции для проверки и размещения заказов.
Функция place_order в менеджере заказов имеет аргументы, похожие на данные, переданные команде размещения заказа:
Код Python для размещения заказа аналогичен команде размещения заказа: import SoftLayer
Если вы хотите программно проверить свой заказ, а не размещать его, замените verify_order() на place_order(). Обе функции используют аргументы одинаково.
Преобразование существующего кода Python для использования имен ключей
Если вы уже размещаете заказы с помощью кода Python, используя жестко закодированные идентификаторы, вы можете использовать этот фрагмент кода для однократного извлечения имен ключей из идентификаторов.
Как выяснить ограничения по емкости.
Некоторые элементы имеют ограничения по емкости, и вы должны выбрать элемент, соответствующий емкости сервера. Эти ограничения, как правило, будут касаться количества ОСНОВ вашего сервера, хотя некоторые могут быть связаны с количеством ПРОЦЕССОР (количество физических ЦП). Хранилище для заказа также будет иметь свой тип, ХРАНИЛИЩЕ, на которое следует обратить внимание.
Пример:
В пакете SINGLE_E31270_V3_4_DRIVES (id=253) есть следующие элементы.
Поскольку для емкостиRestrictedProductFlag установлено значение false, мы можем выбрать цену из этого товара для нашего заказа.
Поскольку у этого товара есть capacityRestrictedProductFlag , нам нужно проверить каждую цену, чтобы убедиться, что ее минимум и максимум действительны для сервера, который мы заказываем. CapacityRestrictionType здесь является CORE, поэтому мы сверяемся с totalPhysicalCoreCapacity нашего элемента SERVER. В этом случае мы бы выбрали идентификатор цены 229005 .
Вот пример ограничения PROCESSOR. Здесь мы сопоставляем поле totalProcessorCapacity нашего элемента сервера.
Другой пример
Если вы выберете priceId с ограничением емкости, но не выберете правильную цену, вы получите сообщение об ошибке, подобное этому:
Различные примеры заказов
Заказ из пакета SINGLE_E31270_2_DRIVES, без рейда, с определенным вланом внутренней сети.
Пошаговый пример использования ibmcloud CLI
Эти команды будут использовать команду ibmcloud sl, но она работает так же, как slcli . Единственная большая разница заключается в том, что ibmcloud требует, чтобы элементы были разделены запятыми, тогда как slcli требует, чтобы они были разделены пробелами.
Здесь мы хотим заказать сервер Cascade Lake Dual Xeon.
Получить пакет.
Получить предметы
Из этого списка вам нужно выбрать процессор (intel_xeon_4210_2_20), RAM (RAM_32_GB_DDR4_2133_ECC_NON_X_BUSTER_MINIMAL_64_BITE), скорость порта (1_GBPS_REDUNDANT_PUBLIC_PRIVATE_NETWORK_UPLINKS, предполагая, что вы хотели RAIDANY, но неверный вариант тоже), RAID (Disk_controller_Raid ), дИСКИ (2 из HARD_DRIVE_2_00_TB_SATA_2 или HARD_DRIVE_1_9_TB_SSD, если вы хотели SSD диски), а также несколько других необходимых предметов (BANDWIDTH_1000_GB, REBOOT_KVM_OVER_IP, 1_IP_ADDRESS, UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT, NOTIFICATION_EMAIL_AND_TICKET, AUTOMATED_NOTIFICATION, MONITORING_HOST_PING) p>
(Необязательно) SSH-ключи
ibmcloud sl call-api SoftLayer_Account getSshKeys вам потребуется поле идентификатора, соответствующее ключу SSH, который вы хотите установить на сервере.
(Необязательно) Подсети и вланы
Для инициализации вам потребуется идентификатор подсети и виртуальной локальной сети. список подсетей ibmcloud sl список vlan ibmcloud sl
Конфигурация рейда
Чтобы получить все параметры типа рейда, используйте следующую команду: ibmcloud sl call-api SoftLayer_Configuration_Storage_Group_Array_Type getAllObjects RAID1 is >
Чтобы получить все доступные шаблоны разделов, запустите следующую команду ibmcloud sl call-api SoftLayer_Hardware_Component_Partition_OperatingSystem getObject --init 1 --mask="mask[partitionTemplates[data]]" Linux basic is (1G /swap, .25G /boot , / установите значение «расти»)
Дополнительно
Все вместе
Если эта статья содержит какую-либо ошибку или оставляет без ответа какой-либо из ваших вопросов, помогите нам, создав проблему на GitHub.
Открыть вопрос
Читайте также: