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との相互作用の機能をより詳細に検討します。

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

Source: https://habr.com/ru/post/J242001/


All Articles