さくらのクラウドのAPIを使ってみますぞ

参照サイト
Rubyから「さくらのクラウド」を操ろう | SourceForge.JP Magazine:

まずはさくらのクラウドコントロールパネルにログイン。
右上のアカウントの表示をクリック>設定に。

左側のメニュー欄にAPIキーというところがあるので、そこから進みます。
APIキーを発行するとリソースIDが付与されました。

出来上がったリソースIDをクリックすると後で必要になる
Access TokenとAccess Token Secretが確認できます。
ちなみにJSONで返ってきます。

APIは以下のページを参照。
サーバ関連API – さくらのクラウド API v1.1 ドキュメント:

プログラムは前回Sinatraで作ったものと記述方式が若干異なるので
前と同じ感じに書き換えてみました。
と言ってもクラスの継承のとこくらいですが・・・。
コメントも追加してみます。

# -*- coding: utf-8 -*-

require 'net/https'
require 'uri'
require 'json'

# アクセストークンおよびゾーン、APIバージョンを指定
token = 'トークン'
secret = 'トークン'
zone_id = 'is1b'
api_version = '1.1'

class Http < Net::HTTP
end

class Basic < Net::HTTP::Get
end

base_url = "https://secure.sakura.ad.jp/cloud/zone/#{zone_id}/api/cloud/#{api_version}"

uri = URI.parse(base_url + '/server')

# new 新しい Net::HTTP オブジェクトを生成します。
https = Http.new(uri.host, uri.port)
# https利用時は呼び出しが必須
https.use_ssl = true
# サーバから受け取った証明書は検証されますが、失敗しても ハンドシェイクは継続します。
https.verify_mode = OpenSSL::SSL::VERIFY_NONE

# BASIC認証 GETをリクエスト
req = Basic.new(uri.path)
req.basic_auth(token, secret)
res = https.start do |x|
x.request(req)
end

# 取得したJSON形式のレスポンスをオブジェクトに変換
data = JSON.parse(res.body)

# pretty_generateで出力
puts JSON.pretty_generate(data)

これを実行するとTotalが返っていますが、まだ何も作っていないので
0ですね。

[takeken@ubuntu]$ ruby check_2.rb
{
"From": 0,
"Count": 0,
"Total": 0,
"Servers": [

],
"is_ok": true
}

VPSと違ってクラウドは課金制で、数日間使う程度ならそれほどお金もかからないので
思い切ってライブマイグレーションを試してみることにします。
一応何かあった時の為に一番アクセスの少ない午前03:00~にやる事にします。
アクセスの少ない時間についてはGoogleAnalyticsの時間帯別アクセスで調べました。

ライブマイグレーション関連のAPIはなかったので、そこだけコントロールパネルからやりますか。

やってみますか!と、思ってコントロールパネルで探しても見当たらない・・・。
あれれ?

「さくらのVPS」からのディスクマイグレーション機能 一時停止のお知らせ

なんですとーーー!

ぼちぼちChefに戻ろうかな。
あ、もともとはPuppetだっけか。

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です