2014年7月30日水曜日

PHPのセッションを Microsoft Azure Storage に保存してみる

PHPのセッションハンドラを Microsoft Azure Table Storage に保存するためのプログラムを、githubに公開してみた。
https://github.com/cocteau666/php-azure-session/

Azure SDK for PHP に依存しています。
https://github.com/cocteau666/azure-sdk-for-php

Microsoft Azure でPHPを使う場合に、セッションデータをローカルに持たないようにするためにも、使ってみてはいかがでしょうか?

使い方は、こんな感じ。

require 'AzureTableSessionHandler.php'; 
$sessionHandler = new AzureTableSessionHandler($blob_account, $blob_key); 
session_set_save_handler($sessionHandler, TRUE); 
session_start();

シンプルですねー。

2014年7月14日月曜日

CentOS7 あれこれ

Microsoft Azure で CentOS7 を動かし始めて数日。
どうでも良いかもしれない、気が付いた事を。

1. firewalld ってもしかして Pythonスクリプト?

psコマンドで確認すると、以下のような表示が。

root      2726     1  0 20:17 ?        00:00:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

まさか、こいつ…。
と思って vim で開いたら、

#!/usr/bin/python -Es
# -*- coding: utf-8 -*-

ではじまってるんだが。
時間があったら見てみよう。

2. httpdを公開するために

firewalld が iptables の設定を管理するようになったので、設定方法が変わっています。
デフォルトでは ssh しか許可されてません。
httpd を許可するためには、firewalld が動作中に firewall-cmd コマンドで設定する必要があります。

こうすると、現在の設定が一覧表示されます。

$ sudo firewall-cmd --list-all-zone

httpd を永続的に追加するにはこうします。(若干、--permanent オプションにハマる)

$ sudo firewall-cmd --permanent --add-service=http --zone=public

3. gccにGO言語のコンパイラあるのね

gcc-go ってパッケージがあるんだー。知らなかったよ。

2014年7月12日土曜日

さっそくMicrosoftAzureでCentOS7を動かしてみる

7月7日に公開になったCentOS7ですが、各方面で情報が出回っているかと思います。

http://centos.org

特徴としては、


  • Kernelが3.10.0
  • Apacheが2.4系に
  • systemdの採用(今までのinitではない)
  • firewalldの採用(iptablesの設定を管理する)
  • MariaDBの採用(MySQLの代替)


ってところでしょうか。

※なお、私が作ったCentOS7のVMDepotイメージはこちらで。
http://vmdepot.msopentech.com/Vhd/Show?vhdId=42491&version=43576

MicrosoftAzureでCentOS7を動かすには、自分でHyper-Vからイメージをアップロードする必要があります。

必要なものは以下の通り。


  • Hyper-V(Windows8のものでOK)
  • Azureストレージにアップロードするツール(私はCloudBerryExplorerでやりました)
  • MicrosoftAzureサブスクリプション
  • WALinuxAgent(githubより取得)

ハマるところだけいくつか解説します。


1. CentOS7をHyper-V上の仮想マシンにインストール


基本的には、以下のリンクの通りで良いのですが、
http://www.atmarkit.co.jp/ait/articles/1405/29/news148.html

Azureで動作させるためのVHDには条件があり、サイズ固定で127GB以下である必要がありますのでご注意ください。

2. WALinuxAgentのインストール

インストールが終わったら、WALinuxAgentのインストールを行います。
以下のサイトからgitで取得します。(gitコマンドはyumでインストールできます)
https://github.com/Azure/WALinuxAgent

中身はPythonですので、以下のようにインストールを。

$ cd WALinuxAgent
$ sudo python setup.py install

ここでインストールされるのですが、systemd向けのスクリプトがありませんので、別途導入します。

$ sudo cp distro/systemd/waagent.service /etc/systemd/system/
$ sudo systemctl enable waagent
$ sudo systemctl start waagent

3. 設定の初期化

Azureでマイイメージとして利用するために、以下のように初期化を行います。
$ sudo waagent -deprovision

このコマンドは以下の処理を行います。

  • waagentの停止
  • SSHホストキーのペアを削除
  • DHCPリースの削除
  • resolv.confの削除
  • rootパスワードの削除

4. Azureストレージへのアップロード

仮想マシンを停止したら、作成したVHDをAzureストレージにPageBlobとしてアップロードします。
アップロード方法はPageBlobでアップロード可能であれば何でもOKです。

5. マイイメージの作成

Azureポータルにログインして、アップロードしたVHDファイルからイメージを作成します。
仮想マシン>イメージ>作成、ですね。



以下のように入力してイメージを作成すると、仮想マシン作成時にアップロードしたイメージから仮想マシンが作成できます。


6. 仮想マシンを作成して遊ぶ

あとは仮想マシンを作るだけです。