Gandi 雲平台的 OpenStack API 之設定與使用方法

Gandi 雲平台是使用 OpenStack,因此您可以透過命令列介面(Command-Line Interface,CLI)使用 OpenStack API 來與您的伺服器互動。

準備好 OpenStack API 的使用環境

在存取公開 API 之前,您務必先設置您的命令列介面以存取 OpenStack。

安裝 Python OpenStackClient:

pip3 install openstackclient

為 OpenStack CLI 建立設定檔,命名為「my_gandivps_conf.sh」,接著,請輸入下列指令,並將前兩行指令中 < > 符號中的值替換成您的值:

#!/usr/bin/env bash

export OS_USERNAME="<your gandiv5 username>"
export OS_PROJECT_NAME="<The name of the Gandi registered organization you wish to manage resources for>"
export OS_USER_DOMAIN_NAME=public
export OS_PROJECT_DOMAIN_NAME=public
export OS_AUTH_URL=https://keystone.sd6.api.gandi.net:5000/v3
export OS_IDENTITY_API_VERSION=3
echo "Please enter your GandiCloud VPS Password for project $OS_PROJECT_NAME as user $OS_USERNAME: (same password as your gandi v5 account)"
read -sr OS_PASSWORD_INPUT
export OS_PASSWORD="$OS_PASSWORD_INPUT"

再來,請在您目前的 shell(以及您希望使用 OpenStack CLI 的其他 shell)上執行原碼化(source):

$ source my_gostack_conf.sh

其將提示您的密碼,而您的密碼會被儲存在 OS_PASSWORD 環境變數中。

如此一來,您的環境便準備就緒,現在您可以建立您第一台伺服器了。

建立第一台 OpenStack 伺服器

現在,您可以使用命令列介面來建立一台伺服器,方法詳見如下:

為您的伺服器選擇映像檔(image),其為預先安裝的作業系統,您的虛擬機器(virtual machine,VM)將使用映像檔來開機:

$ openstack image list

為您的伺服器選擇 flavor,其為您希望 VM 擁有之 CPU 與 RAM 的個數:

$ openstack flavor list

請建立密鑰(keypair),其為一組互相連結的 SSH 公鑰與私鑰,您只需提供您的公鑰,其便會被安裝在 VM 上,讓您可以加密連線:

$ openstack keypair create --public-key <your_public_key_file> <keypair_name>

請建立伺服器,使用下列指令能建立新的儲存空間,並且將其掛載至您的伺服器上:

$ openstack server create --flavor <flavor_id_or_name> --image <image_id_or_name> --boot-from-volume <size-in-GB> --network public --key-name <keypair_name> <server_hostname>

您的伺服器在建立後,會直接處於「BUILD」狀態,然後應變換成「ACTIVE」狀態。

您可以使用下列指令監測伺服器的狀態:

$ openstack server list

您可以使用私鑰加密連線伺服器,或者,一旦您設定好密碼,您便可以使用下列方法取得控制台的 URL 在瀏覽器中開啟:

openstack console url show <your_server_name_or_id>

更多資訊

官方 CLI 使用者文件:https://docs.openstack.org/python-openstackclient/ussuri/

欲直接存取其他工具或 API,可以使用此身份認證端點(keystone endpoint):https://keystone.sd6.api.gandi.net:5000/v3

OpenStack 的項目(project)也能如同其他 Gandi 的產品一樣,使用 組織功能 與其他使用者共享;使用者為您的 Gandi 使用者名稱。