参照サイト
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だっけか。