IDCFクラウド API Referencesを見たけど、利用できるAPIは限られているけど普段使いにはあまり問題はなさそう。(英語のままのもあるけど)
とりあえずSSHの認証鍵を生成して、
$ssh-keygen -t rsaクラウドにアップロードする。
$ cloudstack-api registerSSHKeyPair --name idcf --publickey "$(cat .ssh/生成した公開鍵)" -tSSH公開鍵がアップロードされたのは、クラウドコンソールで確認してもいいしCLIで確認してもいい。今回はCLIからやってみる。
$ cloudstack-api listSSHKeyPairs -t +-------------------------------------------------+------------+ | fingerprint | name | +-------------------------------------------------+------------+ | 31:8a:93:ff:c3:12:8a:ae:19:**:**:**:**:**:**:** | idcf | +-------------------------------------------------+------------+マシン生成する。今回作るサーバプランは一番安いlight.S1にしておく。OSはCentOS7.1を選ぶ。念のためサーバプランとOSテンプレートのid確認方法をもう一度。
$ cloudstack-api listServiceOfferings -t id,displaytext +--------------------------------------+------------------------------------+ | id | displaytext | +--------------------------------------+------------------------------------+ | 10d303d6-d39f-4b15-80a1-982e86ef002b | highio.3XL128( 24CPU /128GB RAM) | | 12e39b73-3ce6-4e57-9036-3dac0c2b2b06 | highmem.M16( 2CPU / 16GB RAM ) | | 354c62e6-b99b-42f2-b5c7-e741f1085422 | standard.XL32( 8CPU / 32 GB RAM ) | | 435c1aab-e796-42c7-9320-22ebdc8f50aa | highcpu.L8( 4CPU / 8GB RAM ) | | 55621f17-4d38-457c-ba34-e6199701b67b | standard.S4( 1CPU / 4GB RAM ) | | 6a99ff4c-1a24-4aa6-b4cc-600220987ed0 | standard.L16( 4CPU / 16GB RAM ) | | 6fda5e0c-e64d-46ea-893d-7e2ac9e128e7 | highcpu.XL16 ( 8CPU / 16GB RAM ) | | 7ae143a6-5662-4f1d-bc4c-10defa775bcb | standard.M8( 2CPU / 8GB RAM ) | | 7c548831-427b-437c-9c8b-80dde8031303 | highcpu.2XL32( 16 CPU / 32GB RAM ) | | 8cf15770-c3c8-4efc-8ae5-b8327790db76 | highcpu.M4( 2CPU / 4GB RAM ) | | 95edba75-7cb5-4654-a2f5-f40b7acf7a57 | standard.S8( 1CPU / 8GB RAM ) | | 9a2f3ee4-af46-4790-9331-753674c16e68 | highio.5XL128( 40CPU /128GB RAM) | | d1aac6d2-bb47-4106-90d0-6a73ac3ae78e | light.S2( 1CPU / 2GB RAM ) | | d59817bc-ed79-4083-8b71-51b26c76d311 | highmem.L32( 4CPU / 32GB RAM ) | | e01a9f32-55c4-4c0d-9b7c-d49a3ccfd3f6 | light.S1( 1CPU / 1GB RAM ) | | ec13a7d8-26ce-4c4e-a223-7ef832bb1243 | light.S2( 1CPU / 2GB RAM ) | | ee5ee568-76b2-46ad-9221-c695e6f2149d | highmem.XL64( 8CPU / 64GB RAM ) | +--------------------------------------+------------------------------------+
$ cloudstack-api listTemplates --templatefilter executable -t name,id | grep Cent | grep "7\.1" | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 |テンプレートは同じのが表示されるが気にせず、このidを使おう。ZoneIDはクラウドコンソールの「ゾーン管理」から「有効」になっているものを使う。僕の場合はradianだった。group、displayname、nameはお好みで。
$ cloudstack-api deployVirtualMachine --serviceofferingid e01a9f32-55c4-4c0d-9b7c-d49a3ccfd3f6 --templateid ee7bc439-0186-49b4-82e4-bf821db89601 --zoneid a53ff3d3-042b-4cbd-ad16-494bb8d33e06 --group highmountain --displayname highmountain --name highmountain --keypair keypairname正常に終わるとJSON形式でidとjobidが返ってきた。
{ "deployvirtualmachineresponse": { "id": "...", "jobid": "..." } }この後クラウドコンソールから確認すると仮想マシンがRunning状態でできていた。
コマンドからも確認してみる。
$ cloudstack-api listVirtualMachines -t
ここでインターネットから接続するためにPublicIPを確認する。
$ cloudstack-api listPublicIpAddresses -t id,ipaddress +--------------------------------------+---------------+ | id | ipaddress | +--------------------------------------+---------------+ | 205e7e75-aae1-4de9-a1fe-b79e4947a715 | xxx.xxx.xxx.xxx | +--------------------------------------+---------------+ソースIPはNATできないのでポートフォワードの設定をする。今回はSSH。
$ cloudstack-api createPortForwardingRule --ipaddressid 205e7e75-aae1-4de9-a1fe-b79e4947a715 --privateport 22 --protocol TCP --publicport 22 --virtualmachineid f3991f90-0962-4948-a965-508c013700c6クラウドコンソールからも確認できるが、これもコマンドから確認できる。
$ cloudstack-api listPortForwardingRules -tここでSSHしてみるとログインできる!
$ ssh root@xxx.xxx.xxx.xxx -i ~/.ssh/PrivateKey ________ ______ ______ __ _ / _/ __ \/ ____/ / ____/________ ____ / /_(_)__ _____ / // / / / / / /_ / ___/ __ \/ __ \/ __/ / _ \/ ___/ _/ // /_/ / /___ / __/ / / / /_/ / / / / /_/ / __/ / /___/_____/\____/ /_/ /_/ \____/_/ /_/\__/_/\___/_/ [root@hostname ~]#
0 件のコメント:
コメントを投稿