ラベル さくらのクラウド の投稿を表示しています。 すべての投稿を表示
ラベル さくらのクラウド の投稿を表示しています。 すべての投稿を表示

2016/11/15

さくらのクラウドがサービス開始から5周年 & 5万円クーポン・キャンペーン

5万円クーポンプレゼント

さくらのクラウドが本日5周年を迎えたそうです。
ちょうど5年前自分もこのブログで取り上げていました。

さくらのクラウド 「始動」
見やすい・分かりやすが徹底されていると思います。何よりも一番重要なコントロールパネルの表示が早く快適なのが素晴らしい。
AWSも国内上陸して5周年。
節目の年になりそうです。


さて、そんなわけで5万円分のクーポン・キャンペーンをやっています。
さくらのクラウド 5周年記念キャンペーン(2016年11月15~12月14日) | さくらのクラウドニュース

新規申し込み以外にも既存顧客でも利用することができるみたいです。
というわけで、5万円で何ができるか考えてみた。

  • 一番でかいサーバ(20コアx224GB + 20GBストレージ)が6日間使える
  • オブジェクトストレージが10TB分1ヶ月間利用できる
  • ウェブアクセラレータで1TB分のコンテンツ配信できる

あまりにも5万円でできることが大きすぎて想像が。。。
折角の機会なので20コアのサーバを活用して機械学習でも回してみましょうかね;-p

(なにはともかく消し忘れに注意しないと…)

2016/01/14

さくらのクラウドの「シンプル監視」の通知をSlackで受信する


さくらのクラウドがシンプル監視という外から監視して何かあったら通知してくれるサービスを出してきた。はてなが出しているMackerelと違って、できることはシンプルだけどエージェントのインストールとか必要ないっぽい。

シンプル監視 | さくらのクラウドニュース


通知方法がメールとSlackがあるらしいので、Slackに通知を飛ばすための設定手順を備忘録として残しておこうと思います。
ちなみに自分が使っているSlackは無料のやつです。

Incoming Webhookを使っているのでそれを有効にすればOKです。


チャンネル名の横にある↓矢印から出てくる「Add an app or custom integration」を選択。


するとなんか知らない間にできていたSlack Appというサービスの画面の検索窓に「Incoming Webhook」と入力。検索候補に出てくる三角形を選択。


するとなんか出てきて、どのチャンネルに投稿するかを選択できます。
そしてAdd~

するとURLが生成されるので、このURLをシンプル監視のWebhook URLの部分にはめ込みます。あとは通常通り監視対象を指定します。




そして、異常を検知した際にはSlackに上記のような通知が行われます。

やったねたえちゃん!監視が捗るね!!



今回テストで8.8.8.8を指定しましたが、さくらインターネットのサービス向けの監視はタダでできるみたいです。(いろいろ条件あり)

2016/01/02

さくらのクラウドのオブジェクトストレージの費用計算機作ってみた


Amazon S3にしてもさくらのクラウドのオブジェクトストレージにしても、ストレージサービスの料金はどうしてこんなにも複雑なのかしら。。

というわけでさくらのクラウド オブジェクトストレージの料金計算機をGoogleスプレッドシードで作ってみました。

https://drive.google.com/open?id=1m3GBLEpTf0PTM4lJ1cN8pPqUdfT0RHCzY5l7PYLuNUc

緑色のセルにデータの保存容量とインターネットへの転送量を入力すると、赤色のセルに想定月額料金が出力されます。
あくまでも概算計算なので、正確な料金計算の時は慎重にお願いします。


キャッシュ配信などの機能がついたみたいなので、いつか対応してみたい;^P

2015/11/11

さくらのクラウドでDocker Machineを試してみた



@nc_yamamoto氏がさくらのクラウド向けのDocker machineドライバを書いてくださったので、早速Windows環境で試してみました。
これを書いている時点ではv0.0.1なのでどんどん変わっていくと思います。

yamamoto-febc/docker-machine-sakuracloud

ちなみにMacでの環境構築の手順はQiitaにまとまっているのでそちらを読んだほうが確実です。
docker-machine + さくらのクラウドでお手軽リモートdockerするよ

実行環境はWindows版のDocker Toolboxをインストールした環境です。
Docker ToolboxはWindowsやMacでDocker操作のクライアント環境などを一括でインストールすることのできるツール集になります。
とりあえずWindowsでDocker触りたいならこれを入れておけばOKかな。


Docker Toolboxのインストール(特にチェックボックスとか変更せずにそのまま)が完了すると、すぐにDocker関連のコマンドが利用できるようになっています。

実際にさくらのクラウドようのドライバのインストールですが、単純にさくらのクラウド用のexeファイルをダウンロードしてDocker-machineのディレクトリに置くだけです。(ね、簡単でしょ)

リリースファイルのZIPをダウンロードしてきます。
フォルダの中に格納されているWindows-386またはWindows-amd64のいずれかを実行するPCの環境に合わせて以下のフォルダに格納します。

C:\Program Files\Docker Toolbox\

何も考えずにDocker Toolboxを実行するとおそらくこちらにインストールされているはずです。
このディレクトリの直下にdocker-machine-driver-sakuracloud.exeをコピーします。
 ※PATHを通したりしなくていいからWindowsは楽ですよね:-p

コマンドプロンプトを開いてインストールされているかを確認します。

C:\>docker-machine create --driver sakuracloud
このコマンドでヘルプが表示されていれば準備完了です。
此処から先の作業は「docker-machine + さくらのクラウドでお手軽リモートdockerするよ」にまとめているのでそちらの手順を参考にされてください。

実際にDocker Machineでさくらのクラウド上にデプロイし、そのままSSH接続を行った図が一番上のスクリーンショットです。(APIキーの部分は消しています)
 コマンドプロンプトでやるときは改行消して1行にしたほうがいいかもしれません。
 Docker ToolboxにはMinGWもインストールされるので、そちらでやったほうがスムーズにできるかと思います。


国内のクラウド事業者でDocker machineが使えるのは感慨深いです。
正直コントロールパネルや独自のAPIをゴリゴリしなくても、他のクラウドと同じ使い勝手で使えるのは衝撃的としか言い表しようがないです。

2015/11/05

AWS Lambdaでさくらのクラウドのバックアップを毎日取得する



さくらのクラウドもAPIを公開しているので諸々の作業をプログラマブルに制御できます。
オペミスでサーバが大変なことになった時のためにディスクのアーカイブ化(バックアップ)するためのプログラムを書いたとしても、実行するための環境をクラウドの上に構築するのもいいのですが、その環境を維持運営するのはちょっと面倒。
最近流行りのサーバレスの環境で完結させるためにAWS Lambdaを使ってみました。

Lambdaは最近Pythonに対応という話が出ていたことと、curlの呼び出しに対応しているという噂を掴んたので簡単に試すには便利かなと。
ちょうど、さくらのクラウドのAPIのサンプルはcurlでサンプルコードが公開されているので、今回はコピペでやってみました;-p


サンプルコードはこちら。
https://gist.github.com/dalice/40544c999788832531c2

こちらをAWS LambdaにPythonランタイムで登録。
コードの一部を編集する必要があるので諸々準備。




まずコード中に書かれている「access_token」 と「access_token_secret」 をクラウドのコントロールパネルのAPIキーから発行します。



次にバックアップしたいディスクのリソースIDとディスクのあるゾーン情報を確認します。
今回はSandboxなので「zone」のところに”tk1v”と入れています。それ以外のゾーンの場合にはコメントにも書いているゾーンを記載します。

「disk_id」の部分にはディスクのリソースIDを記載します。
バックアップしたいディスクとゾーンの情報は揃えるようにしてください。


いつの間にかLambdaがスケジュール実行に対応していたので、Schedule expressionに「1 day」を指定。これでうまく動くと一番上の画像のように毎日どっかのタイミングで指定したディスクを対象としたアーカイブ処理が動きます。
cron記法でも実行時間の記述ができるようなので厳密に処理開始を指定することも可能です。

ね、簡単でしょ。
今回はPythonからOS上のcurlコマンドを呼び出すという邪道なことしましたが、実際にはピュアPythonで記述すればもっとゴニョゴニョできると思います。
サーバにつながっているディスクの一覧を抜き出して一気にアーカイブ作成を行うとか結構実用的な気がします。





注意:
今回は例外処理とか一切していません。
あくまでも「ディスクをソースにアーカイブ作成をしろ」という命令を投げるだけです。
場合によっては命令が届かないとか、アーカイブ作成が途中で失敗するなども考えられますのでご利用の場合にはいい感じに修正してください。
あと、さくらのクラウドは使った分だけの明瞭会計ですが、AWS Lambdaは秒単位×処理能力の実課金らしいので実際にこの処理でどれだけのコストが掛かるのか分かりません。そこのところご注意を。


2015/01/06

Ghostをインストールするスタートアップスクリプトを書いてみた

Ghostセットアップ完了画面

ナウなヤングにバカウケなCMSであるGhostをさくらのクラウドに一発でセットアップできるスタートアップスクリプトを書いてみました。
Ghost | Just a blogging platform


WordpressなどのApache/Nginxを利用するCMSと違い、GhostはNode.jsを利用することが前提です。
正直あまりNode.jsは馴染みがないのでその部分のセットアップに手間取ってしまって、個人的には利用までのハードルが高いCMSでした。
もちろんインストールマニアックスのように導入の工程を楽しむのはありですが、そもそもGhostで楽しみたい人にとっては導入の段階で躓いてしまうのでは酷。あまりにも酷。

黒い画面(コンソール)と睨めっこすることなく、面倒なインストールの部分をショートカットでき、サーバの起動と同時にGhostを利用できる状態まで用意するスタートアップスクリプトをご用意しました。


書いたなんて偉そうに言っていますが、海外のGhostコミュニティでセットアップスクリプトが公開されていたので、それを流用したものとなります;-p
One-Click Ghost Install Script for Ubuntu and CentOS


#!/bin/bash

# @sacloud-once

# @sacloud-desc Ghostをインストールします。
# @sacloud-desc (このスクリプトは、Ubuntu14.04でのみ動作します)
# @sacloud-require-archive distro-ubuntu
export DEBIAN_FRONTEND=noninteractive

apt-get -y update || exit 1
apt-get -y upgrade || exit 1
sudo wget -O - https://raw.github.com/howtoinstallghost/installghost.sh/master/installGhost.sh | sudo bash || exit 1


スクリプトの設定方法はさくらのクラウド「スタートアップスクリプト」機能でconcrete5を自動インストールを参考にしてみてください。

このスクリプトの動作確認済みのアーカイブは「Ubuntu 14.04 LTS」のみです。
DebianやCentOSで利用する場合にはスタートアップスクリプトの修正が必要です。
 ナウなヤングはみんなUbuntu使ってるから問題ないですよね;-p

動作として一旦最新のアップデートを行う必要があり、その後パッケージの導入が行われるため、サーバの起動からGhostのインストール完了(上記のセットアップ完了画面が表示されるまで)が15分から20分程度必要になります。



十分に時間をおいてインターフェースのIPアドレスにブラウザでアクセスすると上記のセットアップ完了画面が表示されると思います。


Ghostそのもののセットアップを行う場合には http://IPアドレス/ghost にアクセスすることでGhostの設定画面が表示されます。


ね、簡単でしょ。
時間課金のクラウドで使い心地を試してみて、長期的に利用しようと思った場合にはVPSなどにインストールして運用するというのが個人で遊ぶ範囲としては面白いのではないでしょうか。

人気が出てきた際には、サーバのスペック変更を柔軟に行うことのできるクラウドにVPSから移行する流れがいいのではないかと思います。


あくまでも最小限のセットアップなので、セキュリティ設定などはGoogle先生にご相談の上対応してくださいね。

2015/01/04

さくらのクラウドとBase Storageを繋ぐスタートアップスクリプト



Base Storage使ってますか?
ベータ期間中は無料で利用可能です。
さくらのBASE Storage | ストレージならさくらインターネット


ということで「さくらのクラウド」とBase Storageを繋ぐs3cmdのセットアップできるスタートアップスクリプトを書いてみました。
ちなみに記載内容はさくらのクラウドニュースに書いてありました;-p
「さくらのBASE Storage」ベータテストを開始しました | さくらのクラウドニュース


やってることはs3cmdをインストールしてさくらのBase Storage向けに書き換えたConfigファイルを作成するというものです。



BaseStorageのユーザ名やトークン名をクラウドのコンパネ上から入力することでログインすることなく設定完了です!
利用できるOSはCentOS 6.6のみとなります。


#!/bin/bash

# @sacloud-once

# @sacloud-text required maxlen=100 Username "ユーザ名を入力"
# @sacloud-text required maxlen=100 Token "トークンを入力"

# @sacloud-desc S3cmdをさくらのオブジェクトストレージの設定済みでインストールします。
# @sacloud-desc (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します)

#---------START OF S3CMD---------#
yum -y install s3cmd || exit 1

cat < /root/.s3cfg
[default]
access_key = @@@Username@@@
access_token =
add_encoding_exts =
add_headers =
bucket_location = US
cache_file =
cloudfront_host = cloudfront.amazonaws.com
default_mime_type = binary/octet-stream
delay_updates = False
delete_after = False
delete_after_fetch = False
delete_removed = False
dry_run = False
enable_multipart = True
encoding = ANSI_X3.4-1968
encrypt = False
expiry_date =
expiry_days =
expiry_prefix =
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passph  rase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passph  rase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase =
guess_mime_type = True
host_base = b.storage.sakura.ad.jp
host_bucket = %(bucket)s.b.storage.sakura.ad.jp
human_readable_sizes = False
ignore_failed_copy = False
invalidate_default_index_on_cf = False
invalidate_default_index_root_on_cf = True
invalidate_on_cf = False
list_md5 = False
log_target_prefix =
max_delete = -1
mime_type =
multipart_chunk_size_mb = 15
preserve_attrs = True
progress_meter = True
proxy_host =
proxy_port = 0
put_continue = False
recursive = False
recv_chunk = 4096
reduced_redundancy = False
restore_days = 1
secret_key = @@@Token@@@
send_chunk = 4096
server_side_encryption = False
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = False
use_mime_magic = True
verbosity = WARNING
website_endpoint = http://%(bucket)s.s3-website-%(location)s.amazonaws.com/
website_error =
website_index = index.html

EOT
#---------END OF S3CMD---------#

導入方法はさくらのナレッジに書いているので参考にしてみてください。

s3cmdのコマンドと使ってみるとちゃんと使えます。
ホスト名がGhostなのは気にしない;-p

Cronでバックアップのサーバにしたり、最近すっかり定着したFluentdのログサーバにしたりいろいろ使えるのではないかと思います。

2014/11/10

仙台でさくらのクラウドを知る催しに参加しました! #sakura_sendai


TDC:東北デベロッパーズコミュニティ主催のさくらのクラウドを知る催しに参加しました。
東京からだと電車で2時間かからず思っていた以上に宮城って近いんだ。。。ただ、その日の気温が東京と5度も低いと堪えます。が、主催者の方などに話を伺うとにこやかに「まだまだですよ〜」なんて聞いちゃうと九州出身の私は震え上がるわけですよ、寒さでね。

当日はあいにくの天気だったにも関わらず多くの方に来場頂きました。
数えてみると予約の人数よりたくさん増えていた感じ;-p


最初はさくらインターネットの田中社長の石狩の郊外型データセンターへの取り組みについて。
なんで東北なの?なんで石狩なの? という部分にものすごく深い戦略的な理由があり、一番後ろの席で一人感嘆してました;-p

当日の資料はSlideShareで共有されています。
郊外型データセンターの現状 ~石狩データセンターでの取り組み~ - 仙台でさくらのクラウドを知る催し2014/11/9



仙台に一大拠点を構えるメンバーズの早坂さんのナウな構成管理ツールのAnsibleのご紹介。AnsibleはChefなどと同じオープンソースの構成管理ツールですがAnsibleが選ばれる理由や使い方など軽快なトークに乗せてご紹介されていました。

ちなみにメンバーズの会社紹介のお話の中で現在の仙台オフィス(ウェブガーデン仙台)には70名近い方が勤務されているということを詳細されていました。
昔から仙台に由来のある会社かと思いきや、震災の後に復興支援という形で現地雇用の創出を目的に3名からスタートされたそうです。


再び田中社長の「さくらのクラウドご紹介」
サービス紹介や事例紹介だけでなく、実際にコントロールパネルを使ったライブデモ。
さらに田中社長が個人で提供している「某アニメ風ロゴジェネレータ」のクラウド上でシステム構成やスケールする仕組みなどを披露されていました。


小泉さんの東北ITコミュニティについての背景や近況報告。
東北はITに限らずコミュニティのつながりが非常に強い地域であり、その背景には東日本大震災という大災害の影響があるという話。
小泉さんはIT事業を行うだけでなく、自身も震災の被害に遭われながらも牡蠣のオーナー制度「うらと海の子再生プロジェクト」をプロデュースされ浦戸の島々の復興支援を手がけられました。

現在は東北ずん子のLINEスタンプを販売したり、アカモクという海藻の普及のため「赤杢ぎばさ」ちゃんというキャラクターをプロデュースしたりと、ノンストップで活動されています。


安達さんのNode.jsでリアルタイムチャットアプリを作られたというライトニングトーク。
Node.js+Socket.IO+Redisを組み合わせたチャットシステムの構築をされたお話・・・というだけであれば新しいことが好きな若いWebエンジニアかと思われるかもしれませんが、この安達さんは60歳を過ぎて今なお最新の技術をキャッチアップするだけでなく、実際にコーディングまでされ、最前線でご活躍されているという姿に感銘を受けました!

Web開発だけにとどまらずiOSアプリ開発など幅広くご活躍されています。
安達さんよりはるかに若い自分が技術を追いかけきれていないというのは恥ずかしく感じます。頑張らないとね。


あっという間の5時間の後は懇親会。
宮城の地酒を頂きましたが「うまい!」
とてもフルーティーで飲みやすいんですよ。

エンジニアのコミュニティが大きさ、密度、知見全てにおいて東北は素晴らしいです。
近いうちに忘年会も予定されている・・・という噂も。
気になる東北在住の方はTDCを覗いてみてはいかがでしょう。

2014/11/09

第3回一撃サーバー構築シェルスクリプト勉強会に参加しました #usptomo

ワタシハ シェル芸 チョット デキル

全国1,000万人のシェルスクリプト(シェル芸)愛好家の皆様いかがお過ごしでしょうか。
そんなシェルスクリプターの総本山として有名なUSP友の会主催の「第三回 一撃サーバ構築シェルスクリプト勉強会」に参加してきました!

季節の変わり目ということもあり体調不良で残念ながら当日欠勤となった方がいらっしゃいましたが、それでもかなりの方に参加いただきました。


さくらのクラウドハンズオン

まずはさくらのクラウド上でサーバを立てる・・・というハンズオンが行われ、その流れでさくらのクラウド上に作成した仮想マシン上に、USP友の会の副会長の濱田さんによるWordpressを一撃シェルスクリプトでVirtualhostでごにょごにょしたり、WP-CLIでシェルからコンソールからブログの更新をしたりと刺激的な内容でした。


濱田さんによる勉強会

当日の講演資料は公開([USP友の会]第3回 一撃サーバー構築シェルスクリプト勉強会 お題のスクリプト)されています。
濱田さんも仰ってましたが「なんで動いているんだろうを意識して手を動かしてみて」ということですので、是非とも資料を見ながら復習するのも面白いと思います。

参加された皆さんのスキルレベルが非常に高く黙々と進んでいたのが印象的。
個人でDNS立てられて運用されているのが当たり前のようにいらっしゃるというこの時代を生きるために、私ももっと頑張らないといけないと強く感じた次第でございます;^p


また近いうちにイベントが開催されるそうなので、是非とも興味が沸いたらUSP友の会のメーリングリストにご参加ください。私も早速参加してみます!

2014/11/08

KOF 2014(関西オープンフォーラム)に参加しました。1日目


大阪の南港で開催される関西最大規模のオープンソースに関連するイベントが開催されたので1日目だけではありますが行ってきました!

あまり写真を撮影できていなかったのは心残り。。。。

関西オープンフォーラム 2014

まず会場となる大阪南港ATCなんですがものすごく近代的でかっこいい施設です!
かなり原色系で遊び心のある施設で中にキッズ向けの遊び場(しかも結構なフロア数!)があったり、噂によると週末には東方のコスプレ撮影会が開かれたりと子供も大きなお子様もみんなが楽しめる施設になっています;-p


かなりの歴史のあるオープンソースのコミュニティーイベントですが、さすが大阪。
開会の挨拶にも笑いを入れてくるあたり感動です!(ちなみに私は初めての大阪入りだったので、大阪弁の洗礼に密かに興奮しておりました!)

KOF2014実行委員長の中野先生の軽快な挨拶でイベントが開催されました!


例えばさくらインターネットであったり、各社いろいろな出し物をご用意されておりました。GitHubさんが出店されていたのは意外です。
さくらのクラウドのハンズオンが開催されたり、メインフロアではライトニングトークが繰り広げられたりと結構賑やかな感じ。

ただ、昨日は金曜日ということもあり大混雑というわけではなくブース対応では一人一人の皆様としっかりとお話しさせていただくことができました。
IPFireというドイツ製のLinuxディストリビューションの話や、ContaoというCMSと出会えたりなどいい刺激になりました!

関東にいる時とは違う出会いに感謝でございます。
2日連続で参加できなかったのは残念でございますが、是非とも来年も参加したいと思います!

2014/10/17

さくらのクラウドを簡単に操作するライブラリ saklient が公開されました

スクリーンショット 2014 10 17 7 38 49

これまでもREST APIは公開していたのですが、今回は便利に使うことのできる各言語に対応したライブラリの提供を開始しました。

APIライブラリ”saklient”(β)を公開しました | さくらのクラウドニュース

 

まだβリリースの段階ですが、以前書いたPowerShellのように回りくどく頑張らなくてもいいんです!!
もっと簡単に扱うことが出来るんです!!

 

というわけで早速Pythonで試してみました。

スクリーンショット 2014 10 17 8 59 25

$ python3.4 UpServer.py 

searching archives

searching scripts

creating a disk

creating a server

connecting the server to shared segment

waiting disk copy

connecting the disk

booting the server

ね、簡単でしょ。(これだけ見ても伝わらないと思うのでサンプルを御覧ください)
スクリプトの中身はsaklient sampleの中に用意してくださっているPythonのコードをただ持ってきただけです。
# Stop以下を除いてコピペしています。
# またアクセスキーの指定の部分がsys.argvになっていたのですが面倒臭いのでPythonのコードの中に埋め込んじゃいました。

 

スケールアウトする仕組みであったり、決められた時間でスケールアップした、アーカイブ取得のバッチ化であったり…REST APIを直接ゴニョゴニョするのもいいですが、扱いやすい形で提供されているとプログラマブルに活用できそうです。

ベータリリースの段階ですので仕様変更などが入るかもしれないということはご注意ください。

2014/10/13

さくらのクラウドにconcrete5をインストールしてみよう

10/14 スクリプトの一部を修正いたしました。

 

 

先日開催されたPHPカンファレンス2014に参加してきました。
その中のLT大会でConcrete5というものが紹介されていた。
興味が湧いたので早速さくらのクラウドにインストールしてみました。

concrete5 Japan 日本語公式サイト

 

Wordpressと同じくCMSなのですが、Wordpressがブログに特化した側面を持つとすれば、これはモダンなコーポレーションサイトという感じでしょうか。
ちなみにオフィシャルで「Concrete5 Japan, Inc. :: concrete5はWordPressに代わるものではありません。」ということを述べているので導入検討時には一読しておくといいかと思います。
上の動画を見ていただけるとわかるかと思いますが、コンテンツを直感的に修正・編集することが可能でHTMLなどの専門的なスキルがなくても使えそうです。

 

さて、レンタルサーバーにインストールする手順は沢山公開されているのですが、ちょっと興味関心が有るからといってわざわざ契約するのは面倒臭い…そうだクラウドを使おう!

というわけで、さくらのクラウドで簡単に利用できるスタートアップスクリプトを作成してみました。
スタートアップスクリプトを使えば黒い画面(ターミナル)を使わずにセットアップできるので便利です。  

#!/bin/bash

# @sacloud-once

# @sacloud-password required minlen=8 maxlen=100 mysqlrootpass "MySQLのrootパスワード"

# @sacloud-desc-begin
# Apache, PHP, MySQLをインストール後、Concrete5.7.0.4をインストールします。
# サーバ起動後に下記URLにアクセスしウィザードに従ってインストールをこなってください。
# http://サーバのIPアドレス
#
# インストール途中に求められるデータベース情報は下記の通り
# ・サーバー:localhost
# ・MySQLユーザー名:root
# ・MySQLパスワード:下記フォームで設定した文字列
# ・データベース名:db_concrete5
# (このスクリプトは、CentOS6.XもしくはScientific Linux6.Xでのみ動作します)
# @sacloud-desc-end

#---------START OF iptables---------#
cat <<'EOT' > /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-SSH - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-SSH
-A INPUT -p TCP -m state --state NEW ! --syn -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A fail2ban-SSH -j RETURN
COMMIT
EOT
service iptables restart
#---------END OF iptables---------#
#---------START OF LAMP---------#
yum -y install expect httpd-devel mod_ssl php-devel php-pear mysql-server php-mbstring php-xml php-gd php-mysql|| exit 1
service httpd status >/dev/null 2>&1 || service httpd start

for i in {1..5}; do
sleep 1
service httpd status && break
[ "$i" -lt 5 ] || exit 1
done
chkconfig httpd on || exit 1

service mysqld status >/dev/null 2>&1 || service mysqld start
for i in {1..5}; do
sleep 1
service mysqld status && break
[ "$i" -lt 5 ] || exit 1
done
chkconfig mysqld on || exit 1

/usr/bin/mysqladmin -u root password "@@@mysqlrootpass@@@" || exit 1

cat <<EOT > /root/.my.cnf
[client]
host = localhost
user = root
password = @@@mysqlrootpass@@@
socket = /var/lib/mysql/mysql.sock
EOT
chmod 600 /root/.my.cnf
#---------END OF LAMP————#
#---------START OF Concrete5.7.0.4————#
cd /tmp
wget http://www.concrete5.org/download_file/-/view/71439/ -O concrete5.7.0.4.zip || exit 1

unzip concrete5.7.0.4.zip || exit 1

cp -a concrete5.7.0.4/* /var/www/html/ || exit1
chown -R apache: /var/www/html/ || exit 1

echo "create database db_concrete5 default character set utf8;" | mysql --defaults-file=/root/.my.cnf || exit 1
#---------END OF Concrete5.7.0.4---------#

スタートアップスクリプトの登録方法はこちらを参考にしてください → スタートアップスクリプト | さくらのクラウドニュース

 

さて、実際にこのスクリプトを登録して実際にサーバを構築してみましょう。

スクリーンショット 2014 10 13 19 06 45

登録したConcrete5のスクリプトを選ぶとMySQLのパスワードを入力する枠が出てきます。
このパスワードは後ほど使用するので忘れないで下さいね。 

サーバ起動してみるとものの数分で準備が整い、サーバのIPアドレスにブラウザでアクセスしてください。

スクリーンショット 2014 10 13 18 59 32

ドロップメニューの中に日本語設定があるのでそれを選択します。

スクリーンショット 2014 10 13 18 59 56

インストール可否のチェックが行われますので問題ないことを確認します。

スクリーンショット 2014 10 13 19 00 28

上記のスクリプトを利用すれば問題ない…はず。

スクリーンショット 2014 10 13 19 02 07

DB接続設定などを編集出来ます。
上記のスクリプトを利用している場合は値が固定されている箇所があるのでご注意ください。

【データベース情報】
 ・サーバー:localhost
 ・MySQLユーザー名:root
 ・MySQLパスワード:(先ほど入力したパスワード)
 ・データベース名:db_concrete5

下線部は固定なので上記をコピペするなどして入力してください。

 

スクリーンショット 2014 10 13 19 05 57

インストールが動いて少々待つと…

スクリーンショット 2014 10 13 19 08 32

スクリーンショット 2014 10 13 19 09 18

ね、簡単でしょ。
セットアップになんの労力も必要ないのでさっくり試したいときには是非。

お試しされて本格的に運用しようと思った場合にはこのまま利用するのもよし、レンタルサーバーに載せ替えて公開するもよし。Concrete5オフィシャルではレンタルサーバーへのインストール手順も公開されているのでそちらを参考にしてください。

※このスクリプトはあくまでも簡単にConcrete5を使えるというところに眼点を置いて作っていますので、本番運用に利用する場合にはアクセス権の設定やMySQLの設定など必要に応じて変更してください。

2014/09/22

GitLabをさくらのクラウドにインストールしてみた

Gitlabdotcom2

Ruby on Railsで構築されたGitレポジトリ管理ツール…言ってみればGithubクローンです。

 

ご存知Githubはオープンソースプロジェクトは無償でホスティング出来ますが、エンタープライズ用途(非公開プロジェクト)で使おうと思うとそれなりのコストが必要になります。
もちろん使い慣れたGitHubを利用したいというのであれば問題ありませんが、オフライン(社内イントラネット)で利用したいというニーズもあると思います。

インストールしてしまえばローカル(イントラネット)で利用できる強みがGitlabにはあると思います。
ちなみにGitLab自体にもホスティングプランが用意されているので一番効率的な運用をchoice出来ます。 

 

というわけなのでGitHubを使ったことのない私がUbuntuにGitLabをインストールしてみようと思います;-p
ググってみるとオフィシャルで解説しているページが有ったのでその通りやってみると…

GitLab | Package downloads for GitLab CE

スクリーンショット 2014 09 22 20 58 25

驚くべきほど簡単に導入完了。
確かに何かできそうです。

さて、これではあまりにも簡単すぎるので先日紹介したさくらのクラウドのスタートアップスクリプトを作成してみました。 

#!/bin/bash

# @sacloud-once

# @sacloud-desc GitLab7.2.2
# @sacloud-desc サーバ作成後、WebブラウザでサーバのIPアドレスにアクセスしてください。
# @sacloud-desc http://サーバのIPアドレス/
# @sacloud-desc Username: root
# @sacloud-desc Password: 5iveL!fe
# @sacloud-desc (このスクリプトは、Ubuntuでのみ動作します)

#---------START OF GitLab---------#
wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.2.2-omnibus-1_amd64.deb
sudo apt-get install openssh-server
sudo dpkg -i gitlab_7.2.2-omnibus-1_amd64.deb

IPA=$(LANG=C /sbin/ifconfig | grep 'inet addr' | grep -v 127.0.0.1 | awk '{print $2;}' | cut -d: -f2)
echo external_url \'http://$IPA\' > /etc/gitlab/gitlab.rb

sudo gitlab-ctl reconfigure
#---------END OF GitLab---------#

スクリーンショット 2014 09 22 22 00 27

実際にこのスクリプトで起動を行いブラウザからアクセスしてみると…

スクリーンショット 2014 09 22 22 09 20

めでたくログイン画面が表示されます。

2014/09/08

さくらのクラウドのJenkinsを入れてみた

スクリーンショット 2014 09 08 13 12 58

先日読んだ”チーム開発実践入門”でプッシュされていたJenkinsをUbuntuサーバに入れてみました。
ただ入れるだけでは面白く無い(非常に簡単)なので、さくらのクラウドに用意されているスタートアップスクリプトでサーバ起動と同時にJenkinsの環境が出来上がるように挑戦してみました。

 Welcome to Jenkins CI! | Jenkins CI

Jenkins自体はJavaで作られているのでJavaが動作する環境があればOS問わず利用可能です。 
UbuntuやCentOS(RHEL)にはapt、Yumのパッケージも用意されています。

というわけで今回はUbuntuサーバにaptコマンドを利用してJenkinsの環境を構築する ということをスタートアップスクリプトにさせてみます。

 

さくらのクラウドのスタートアップスクリプトについてはこちら。
スタートアップスクリプト | さくらのクラウドニュース 

ちなみにYum環境限定(RHEL系)しかできないように読めてしまうかもしれませんが、ちゃんとUbuntuでも動きました。

スクリーンショット 2014 09 08 13 27 20

このスクリプトを選択してきサーバの実行を行い、起動させ、少々待つとJenkinsのスタートページに接続できるようになります。
どうもサーバ起動してスクリプトが動いているようなのでサーバ起動=スクリプト完了というわけではないようです。

スクリーンショット 2014 09 08 13 18 55

 

ね、簡単でしょ。

 

今回挑戦してみたスクリプト全文は以下の通りです。

#!/bin/bash

# @sacloud-once

# @sacloud-desc Jenkins
# @sacloud-desc サーバ作成後、WebブラウザでサーバのIPアドレスにアクセスしてください。
# @sacloud-desc http://サーバのIPアドレス:8080/
# @sacloud-desc (このスクリプトは、Ubuntuでのみ動作します)

#---------START OF Jenkins---------#
wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get -y install jenkins
#---------END OF Jenkins---------#

他の人が作成したスクリプトを共有できるようになると面白いかもしれないです。

 

ちなみに一番ハマった事はさくらのクラウドでデフォルトで用意されているUbuntuアーカイブのアカウント名が「ubuntu」ということですかね… 

2014/09/06

PowerShellでさくらのクラウドを起動してみた

Gfx

「それWindowsでもできるよ。」

先日さくらのクラウドがSandboxという無償で何をしてもいい環境(意訳)を用意してくださったので、
WindowsのPowerShellでさくらのクラウドのREST APIを叩いて遊んでみました。 

すでにさくらのクラウドのAPIツールとしてはsacloud CLIというJavascript実装が用意されていますが、せっかくなのでPowerShellで挑戦してみました。
もちろんREST APIなので様々な言語で実装可能です。


*作業環境

今回はWindows8.1の環境を利用しました。
PowerShellの Invoke-RestMethodを使いたいのでPowerShell3.0(Windows8またはWindows Server 2012以降)の環境を推奨です。

困ったときはさくらのクラウドのAPIリファレンスを読みましょう。
 さくらのクラウドAPI1.1

 

*事前作業

基本的なことですがさくらのクラウドへアカウント登録済みであるという前提で進めます。

まずはAPIを呼ぶためのアクセストークンを取得します。
APIキーの取得のページから 適当なAPIキーを登録しました。

注:sandbox環境を使う際にはsandbox環境でAPIキーを発行する必要があります。同様に石狩第1ゾーンを利用する場合には第1ゾーンのAPIキーが必要になるようです。

スクリーンショット 2014 09 06 20 42 01

そうするとアクセストークンとシークレットアクセストークンが確認できるようになります。

スクリーンショット 2014 09 06 20 46 03

注:ひらがなで書いている部分には本来半角英数の文字列が記載されています。これを利用してアクセスする形となります。

 

*サーバの状態を確認する。

実際にPowerShellでサーバの一覧を取得してみます。

$ACCESS_TOKEN = "アクセストークン"
$ACCESS_TOKEN_SECRET = "シークレットアクセストークン"

$basicAuth = ("{0}:{1}" -f $ACCESS_TOKEN,$ACCESS_TOKEN_SECRET)
$basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth)
$basicAuth = [System.Convert]::ToBase64String($basicAuth)
$headers = @{Authorization=("Basic {0}" -f $basicAuth)}

Invoke-RestMethod -Uri https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/server -headers $headers -Method Get

最終行は折り返しなしの1行で。
先ほど取得したアクセストークンを設定してあげ実行すると…

From : 0
Count : 0
Total : 0
Servers : {}
is_ok : True

もちろんサーバは起動していないのでCount:0という戻り値が帰ってきます。 

 

*サーバを起動する

$ACCESS_TOKEN = "アクセストークン"
$ACCESS_TOKEN_SECRET = "シークレットアクセストークン"

$basicAuth = ("{0}:{1}" -f $ACCESS_TOKEN,$ACCESS_TOKEN_SECRET)
$basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth)
$basicAuth = [System.Convert]::ToBase64String($basicAuth)
$headers = @{Authorization=("Basic {0}" -f $basicAuth)}

$body = @{"Server.Name"="New Server";"Server.Zone.ID"=29001;"Server.ServerPlan.ID"=1001}

Invoke-RestMethod -Uri https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/server -headers $headers -body $body -Method Post

Bodyの部分を追加と一部を変更して実行してあげると…

Server Success is_ok
------ ------- -----
@{ID=112600706358; Name=New Server; HostName=localhost; ... True True

PowerShellのシェル上ではきちんと表示されていますが、このようにTrueが帰ってきます。

スクリーンショット 2014 09 06 21 58 46

さくらのクラウドのWeb画面上でも指定した名前のサーバインスタンスが出来上がっていることを確認出来ました。

先ほど実行したサーバの状態を確認するPowerShellを実行すると

From : 0
Count : 1
Total : 1
Servers : {@{Index=0; ID=112600706358; Name=New Server; HostName=localhost; Description=; ServiceClass=cloud/plan/1core-1gb; CreatedAt=2014-09-06T21:50:56+09:00; Icon=; ServerPlan
=; Zone=; Instance=; Disks=System.Object[]; Interfaces=System.Object[]; Appliance=; Tags=System.Object[]}}
is_ok : True

ちゃんとCountが1になっており1台作成されていることが確認できます。

ちなみにゾーンIDとサーバプランIDの確認の方法はURIから問い合わせできます。

Invoke-RestMethod -Uri https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/zone -headers $headers -Method Get

Invoke-RestMethod -Uri https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/product/server -headers $headers -Method Get

 

*サーバを削除する

$ACCESS_TOKEN = "アクセストークン"
$ACCESS_TOKEN_SECRET = "シークレットアクセストークン"

$basicAuth = ("{0}:{1}" -f $ACCESS_TOKEN,$ACCESS_TOKEN_SECRET)
$basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth)
$basicAuth = [System.Convert]::ToBase64String($basicAuth)
$headers = @{Authorization=("Basic {0}" -f $basicAuth)}

$body = {Force=true}
Invoke-RestMethod -Uri https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/server/112600706358 -headers $headers -Method DELETE -body $body

対象のサーバIDを確認し、そのURIに対してDeleteメソッドを投げるだけ。

スクリーンショット 2014 09 06 22 13 38

Web画面上でも削除されていることを確認。

ちなみに今回の方法はサーバのインスタンスの用意だけを行いました。
本来はこれに対してディスクを用意して上げる必要があります。むしろディスクを用意しないとサーバインスタンスは用意できますが 起動はできません…
このあたりもURIでコールしてIDを調べて…ッテすればできると思います。

さくらのクラウドのAPIリファレンスにはサンプルコードも掲載されているので、PowerShellとか変化球を狙わなければ比較的簡単にできると思います。 
何を思ったか今回はPowerShellで挑戦しましたが…いい勉強になりました。 

 

今回はさくらのクラウドのAPIをPowerShellから呼び出してみましたが、最近のWebAPIの多くはRESTベースのものですのでWindows環境からの利用というところで応用の幅はあるのではないかと思います。
PowerShellであればモダンなWindows環境下で新規にツールのインストールが必要ないというのが強みではないでしょうか。もちろんきちんとツールが用意できるのであればPowerShellに拘る必要もありません。