Virtual Private Cloud APIの使用:コンソールクライアント

OpenStack API



新しいサービス「Virtual Private Cloud」に関する一連の出版物を継続しています。 今日は、OpenStack APIについてお話しし、コンソールクライアントを使用してOpenStack APIとやり取りする方法を示します。



ユーザーを作成



APIの使用を開始する前に、新しいユーザーを作成してプロジェクトに追加する必要があります。 [仮想プライベートクラウド]メニューで、[ユーザー]アイテムを選択します。



VPCユーザー作成



ユーザーのリストを含むページが開きます:



APIユーザー



リストはまだ空です。 「ユーザーの作成」ボタンをクリックします。開いたウィンドウで名前を入力し、再度「作成」ボタンをクリックします。 パネルに入るためのパスワードは自動的に生成されます。 リストの名前の横にあるアイコンをクリックして、新しいユーザーのプロパティを確認します。



OpenStack API



「プロジェクトに追加」リンクをクリックし、作成されたユーザーがアクセスできるプロジェクトのリストから選択します。



その後、ユーザーはこれらのプロジェクトのコントロールパネルに表示されます。 ユーザー名の横にリンクが表示され、ブラウザからプロジェクトリソースにアクセスできます。



オープンスタックAPI



このリンクに従って、作成したユーザーのアカウントでプロジェクトを入力します。 その後、「アクセス」タブに移動して、RCファイルをダウンロードします(コンソールクライアントがIdentity API v3にログインできるスクリプトです)。



ソフトウェアをインストールする



プロジェクトで動作するようにシステムを構成するには、追加のソフトウェアをインストールする必要があります。 この記事では、OC Ubuntu 14.04のインストール手順を説明します。 他のオペレーティングシステムの場合、コマンドは異なる場合があります。 Debian 7.0およびCentOS 6.5の手順は、コントロールパネル(「アクセス」タブ)で直接確認できます。



次のパッケージをインストールします。



$ apt-get update $ apt-get install curl python-pip python-dev git libxml2-dev libxslt1-dev python-keystoneclient python-heatclient python-novaclient python-glanceclient python-neutronclient
      
      





次に、Ubuntuリポジトリに存在しないか、存在するが古いバージョンのソフトウェアをインストールします。



 $ pip install git+https://github.com/openstack/python-cinderclient $ pip install cliff --upgrade $ pip install python-openstackclient
      
      





その後、次のコマンドを実行します。



 $ source rc.sh
      
      





プログラムはパスワードを要求します。 外部パネルにログインしているアカウントのユーザーのパスワードを再入力します。

これで仕事に取りかかることができます。



ネットワーク情報を表示する



仮想マシンを作成するには、ネットワークが必要です。 利用可能なネットワークのリストを見てみましょう:



 $ neutron net-list
      
      





 +--------------------------------------+------------------+-----------------------------------------------------+ | id | name | subnets | +--------------------------------------+------------------+-----------------------------------------------------+ | 1c037362-487f-4103-a73b-6cba3f5532dc | nat | b7be542a-2eef-465e-aacd-34a0c83e6afa 192.168.0.0/24 | | ab2264dd-bde8-4a97-b0da-5fea63191019 | external-network | 102a9263-2d84-4335-acfb-6583ac8e70aa | | | | aa9e4fc4-63b0-432e-bcbd-82a613310acb | | fce90252-7d99-4fc7-80ae-ef763d12938d | newnetwork | 5a1a68f9-b885-47b7-9c7e-6f0e08145e3b 192.168.1.0/24 | +--------------------------------------+------------------+-----------------------------------------------------+
      
      







各ネットワークには識別番号(列ID)があります。 新しいサーバーを作成するときに指定する必要があります。



グラフィカルインターフェイスを使用してネットワーク構成をアクティブにすることもできます(詳細については、 こちらを参照してください )。



サーバー操作



利用可能な画像のリストを見てみましょう:



 $ glance image-list
      
      





 +--------------------------------------+--------------------------+-------------+------------------+-------------+--------+ | ID | Name | Disk Format | Container Format | Size | Status | +--------------------------------------+--------------------------+-------------+------------------+-------------+--------+ | 552bc246-5ae7-4b48-9a64-e1e881a64cab | CentOS 6 32-bit | raw | bare | 219152384 | active | | 708a7642-80ab-486e-a031-e6b6a652004c | CentOS 6 32-bit | raw | bare | 2147483648 | active | | 978d81c0-c508-412d-9847-fb8cec294410 | CentOS 6 64-bit | raw | bare | 263192576 | active | | ee5d5bb7-8a31-467a-8bbf-f6f5bbb79334 | CentOS 6 64-bit | raw | bare | 2147483648 | active | | 647bce00-5f29-49fe-9e83-8b33cb188d17 | CentOS 7 64-bit | raw | bare | 2147483648 | active | | dff9df74-b7b3-44b0-92f3-40cb4dfd9a94 | CoreOS | qcow2 | ovf | 449839104 | active | | 3eda89b9-9ce0-47b7-9907-a2978d88632e | CoreOS | qcow2 | ovf | 413007872 | active | | d2033c50-e8f4-4ff6-9c21-cade02007f34 | Debian 7 (Wheezy) 32-bit | raw | bare | 10485760 | active | | ba78ce9b-f800-4fb2-ad85-a68ca0f19cb8 | Debian 7 (Wheezy) 32-bit | raw | bare | 2147483648 | active | | b2c8bc6a-dbb8-4a1a-ab8e-c63f5f2b9bdf | Debian 7 (Wheezy) 64-bit | raw | bare | 11534336 | active | | 18a18569-389c-4144-82ae-e5e85862fca4 | Debian 7 (Wheezy) 64-bit | raw | bare | 2147483648 | active | | 8c3233c9-25cd-4181-a422-aa24032255cc | OpenSUSE 13.1 32-bit | raw | bare | 74448896 | active | | d965d37c-6796-40bd-8966-d0d7f7f41313 | OpenSUSE 13.1 32-bit | raw | bare | 3221225472 | active | | b77015d0-3eba-4841-9d02-7e9d606d343a | OpenSUSE 13.1 64-bit | raw | bare | 76546048 | active | | b20a1e1a-3c81-4d13-926f-eb39546b9b36 | OpenSUSE 13.1 64-bit | raw | bare | 3221225472 | active | | c168e0e5-c01e-44ec-be36-1c10e2da94a5 | selectel-rescue-initrd | ari | ari | 13665966 | active | | 0b117761-4ab5-40d7-a610-127d1e10206f | selectel-rescue-kernel | aki | aki | 5634192 | active | | c2fce974-4aeb-473a-9475-176207c3f293 | Ubuntu 12.04 LTS 32-bit | raw | bare | 22020096 | active | | eeb9143c-1500-4086-8025-307bc96fc467 | Ubuntu 12.04 LTS 32-bit | raw | bare | 2147483648 | active | | dbdd5cb3-f73f-4d98-85e9-eb333463e431 | Ubuntu 12.04 LTS 64-bit | raw | bare | 26214400 | active | | c1231800-9423-4018-b138-af8860ea8239 | Ubuntu 12.04 LTS 64-bit | raw | bare | 2147483648 | active | | c61cfa0d-3f7b-489f-8e55-4904a0d6e830 | Ubuntu 14.04 LTS 32-bit | raw | bare | 26214400 | active | | fbb2bb25-5058-4f06-85c8-6d3ca268e686 | Ubuntu 14.04 LTS 32-bit | raw | bare | 2147483648 | active | | e024042b-80f5-4eea-ae29-733ae32f65e6 | Ubuntu 14.04 LTS 64-bit | raw | bare | 33554432 | active | | f10ab2a9-478d-4401-9371-384bd9731156 | Ubuntu 14.04 LTS 64-bit | raw | bare | 2147483648 | active | | 6a4b53e6-109c-4fc0-9535-b97bc2912de6 | windows_2012_final | raw | bare | 10737418240 | active | +--------------------------------------+--------------------------+-------------+------------------+-------------+--------+
      
      







目的のイメージを選択した後、そのIDをコピーします-サーバーの作成時に必要になります。

次に、必要なサーバー構成を作成します(OpenStakの用語では、フレーバーという用語で示されますが、ロシア語にはほとんど翻訳できません)。



 $ nova flavor-create < > auto < > <  > < >
      
      





このコマンドのハードドライブのサイズはゼロに設定する必要があります。 実装では、Cinderボリュームはルート(システム)ディスクとしてマシンに接続されます。 このソリューションは柔軟性のために選択されました。ローカルディスクとは異なり(Amazonの用語ではインスタンスストアと呼ばれます)、Cinderボリュームを切断して他のマシンに接続できます。



このコマンドの自動キーは、サーバー構成IDが自動的に生成されることを意味します。



 +------------------------------------+------+---------+----+---------+----+-----+-----------+---------+ |ID |Name |Memory,MB|Disk|Ephemeral|Swap|VCPUs|RXTX_Factor|Is_Public| +------------------------------------+------+---------+----+---------+----+-----+-----------+---------+ |fc275dcc-f51a-48c3-b0c3-c3fdd300dd65|myflvr| 1024 | 0 | 0 | | 2 | 1.0 | True | +------------------------------------+------+---------+----+---------+----+-----+-----------+---------+
      
      







IDはコピーする必要があります-サーバーの作成時にも必要になります。

次に、SSHキーを作成します。



 $ nova keypair-add < > < > $ chmod 600
      
      





このコマンドは、SSHを介して仮想マシンに接続できるファイルに秘密キーを出力します(この場合の接続コマンドは次のようになります:ssh -i <ファイル名> <サーバーIPアドレス>)。



すでに秘密鍵と公開鍵のペアがある場合は、引数として公開鍵を指定できます。



 $ nova keypair-add < > pub-key <   >
      
      





例:



 $ nova keypair-add myKey --pub-key /home/user/.ssh/id_rsa.pub
      
      





SSHキーは、コントロールパネル(プロジェクトプロパティの[アクセス]タブ)から追加することもできます。



イメージと構成を選択したら、サーバーの作成に直接進みます。



 $ nova boot < > <flavor_id> --nic net-id=<id > --key-name myKey --block-device id=<image_id>,source=image,dest=volume,size=0,device=vda,bootindex=0
      
      





bootコマンドの後に、サーバー名を指定してから、選択したイメージのID、構成ID、およびSSHキーを指定します。



コントロールパネルと画像を作成する際に、ネットワーク上で暗号化されていない形式でパスワードを送信する可能性を排除しようとしました。 これが、画像がパスワードを受け入れず、コントロールパネルによって生成されたハッシュを受け入れる理由です。



コンソールからマシンにアクセスするには、ユーザー名を入力してEnterを押します。 SSHログインはキーでのみ可能です。



ディスク操作



次のコマンドを使用して、新しいディスクを作成し、サーバーに接続できます。



 $ cinder create --name < > <, >
      
      





ディスクが正常に作成された場合、主な特性を備えたテーブルがコンソールに表示されます。

 +-------------------+--------------------------------------+ | Property | Value | +-------------------+--------------------------------------+ | attachments | [] | | availability_zone | ru-1a | | bootable | false | | created_at | 2014-10-23T11:10:15.000000 | | description | None | | encrypted | False | | id | 76586803-9cfd-4f75-931d-0a4dee98e496 | | metadata | {} | | name | mydisk | | size | 5 | | snapshot_id | None | | source_volid | None | | status | creating | | user_id | 6f862e43d4a84f359928948fb658d695 | | volume_type | default | +-------------------+--------------------------------------+
      
      





ディスクをサーバーに接続するには、このテーブルからidパラメーターをコピーして、コマンドを実行します。



 $ nova volume-attach < > <id >
      
      





IPアドレスの作成と割り当て



インターネットからサーバーにアクセスできる外部IPアドレスを作成するには、次のコマンドを実行します。



 $ neutron floatingip-create external-network
      
      





作成したアドレスをサーバーに割り当てます。



 $ nova floating-ip-associate < > <>
      
      





電源管理と再起動



サーバーを再起動するには、ソフトウェアとハ​​ードウェア(電源オフによる)リブートの2つの方法があります。



次のコマンドは、ソフトリセットに使用されます。



 $ nova reboot < >
      
      





そしてハードウェアのために-



 $ nova reboot --hard < >
      
      





電源管理は、開始および停止コマンドを使用して実行されます。



 #   $ nova start < > #   $ nova stop < >
      
      





ネットワークポート操作



新しいネットワークを作成します。



 $ neutron net-create < >
      
      







コマンドを実行すると、ネットワークに関する情報を含むテーブルがコンソールに表示されます。

 +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | admin_state_up | True | | id | add73ca5-6120-43bd-bb56-d1d8d71d21ac | | name | localnet | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | d15391cc95474b1ab6bd81fb2a73bc5c | +----------------+--------------------------------------+
      
      





次のコマンドを使用して、このネットワーク上にサブネットを作成できます。



 $ neutron subnet-create --name 192.168.1.0/24 192.168.1.0/24 <id >
      
      







(前のコマンドの出力からネットワークIDを取得します)。



次に、ネットワーク上にポートを作成します。



 $ neutron port-create < >
      
      





サーバーを接続します:



 $ nova interface-attach --port-id <id > < >
      
      





おわりに



この記事は、OpenStack APIの簡単な紹介です。 コンソールクライアントの操作について質問がある場合は、コメントで回答します。



以下の出版物で、APIとの相互作用の機能をより詳細に検討します。



何らかの理由でここにコメントを投稿できない読者は、私たちのブログに参加してください。



All Articles