さくらのクラウドの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だっけか。

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *