さくらのクラウドでディスクのクローン

さくらのクラウドサーバ使ってます。

最近のクラウドサーバで新しいサーバを作る時は、
ディスクのクローンを作成。

  • CPUやメモリを決めてサーバを作成。
  • サーバ起動。
  • 不要なユーザー削除とrootパスワード再設定。
  • yum updateを1発して完成。

というような感じのフローをとっています。メールサーバを新規に建てるのが大変で、もしハマると時間もかかっちゃいますし・・・。さくらのクラウドはVPSとクラウド間のディスクのクローンができればすごく便利になるので期待してます。

さて、さくらのクラウドを使ってるとディスクのクローンを行った場合、ネットワークに繋がってないので、コントロールパネルからコンソールにログインし、ネットワークの設定をする必要があります。

サーバーのIPが133.133.133.133と仮定した場合、下記の設定にすると動きました。

/etc/sysconfig/network-scripts/ifcfg-eth0を変更

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=9c:a3:ba:**:**:** ←macアドレス
NM_CONTROLLED=yes
ONBOOT=yes
BOOTPROTO=static
IPADDR=133.133.133.133←IPv4アドレス
TYPE="Ethernet"
NETMASK=255.255.255.0←ネットマスク

/etc/sysconfig/networkを変更

# vi /etc/sysconfig/network
NETWORIKING=yes
NETWORIKING_IPV6=yes
GATEWAY=133.133.133.1 ←ゲートウェイ
HOSTNAME=localhost.localdomain1

/etc/resolv.conf を作成

# vi /etc/resolv.conf
nameserver 133.133.0.3 ←ネームサーバ
nameserver 133.133.0.4 ←ネームサーバ
search localdomain

これが終わったらnetworkを再起動。

# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]

ping打ってみます。

# ping google.co.jp
PING google.co.jp (74.125.235.184) 56(84) bytes of data.
64 bytes from nrt19s12-in-f24.1e100.net (74.125.235.184): icmp_seq=1 ttl=57 time=16.8 ms
64 bytes from nrt19s12-in-f24.1e100.net (74.125.235.184): icmp_seq=2 ttl=57 time=16.5 ms
64 bytes from nrt19s12-in-f24.1e100.net (74.125.235.184): icmp_seq=3 ttl=57 time=16.5 ms

参考:さくらクラウドのネットワーク設定方法
2年前に書いた記事が役に立ちました。

さくらのVPSにgitをyumでインストール

gitをインストールする時 yum を使ってインストールします。

$ sudo yum install git
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Excluding Packages in global exclude list
Finished
Setting up Install Process
Nothing to do

無いすか・・・。

gitはデフォルトのレポジトリには無いからrpmforgeのレポジトリを使うといいよ!
って教えてもらいました。

yumにrpmforgeのレポジトリが無い時は追加

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

普段は使いたくないので、利用されないように変更。

# vi /etc/yum.repos.d/rpmforge.repo
[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el6/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0 // 1を0へ変更
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

できたら追加したrpmforgeレポジトリでインストールしてみる。

$ sudo yum install git --enablerepo=rpmforge

参考
[Linux]CentOSにyumでgitを導入
ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)

postfixadminでメールボックスが作成されない件

Postfix Admin 2.3.5でメルアド追加してもメールボックスが作成されなかったのでメモ。

postfixadminでドメインとアドレスを追加した時にメールボックスが作成されませんでした。
さくらVPSのお試し期間のOB25Pが原因かなーと思って
課金してみて再度やっても作成されません><。

postfixadminではメルアドを追加した時にそのメルアドにメールを送ってメールボックスを作成しているらしいです。該当部分はここ。

postfixadmin/function.inc.php

//
// smtp_mail
// Action: Sends email to new account.
// Call: smtp_mail (string To, string From, string Data)
// TODO: Replace this with something decent like PEAR::Mail or Zend_Mail.
function smtp_mail ($to, $from, $data)
{
    global $CONF;
    $smtpd_server = $CONF['smtp_server'];
    $smtpd_port = $CONF['smtp_port'];
    $smtp_server = $_SERVER["SERVER_NAME"];
    $errno = "0";
    $errstr = "0";
    $timeout = "30";
 
    $fh = @fsockopen ($smtpd_server, $smtpd_port, $errno, $errstr, $timeout);
 
    if (!$fh)
    {
        return false;
    }
    else
    {
        $res = smtp_get_response($fh);
        fputs ($fh, "EHLO $smtp_server\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "MAIL FROM:<$from>\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "RCPT TO:<$to>\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "DATA\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "$data\r\n.\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "QUIT\r\n");
        $res = smtp_get_response($fh);
        fclose ($fh);
    }
    return true;
}
 
//
// smtp_get_response
// Action: Get response from mail server
// Call: smtp_get_response (string FileHandle)
//
function smtp_get_response ($fh)
{
    $res ='';
    do
{
    $line = fgets($fh, 256);
    $res .= $line;
}
while (preg_match("/^\d\d\d\-/", $line));
return $res;
}

メルアド追加時のメールログをみてみました。

/var/log/mail.log

warning: table "mysql:/etc/postfix/mysql_virtual_domains_maps.cf": empty lookup result for:****.com

どうやらmysql_virtual_domains_maps.cfが怪しいみたいです。

/etc/postfix/mysql_virtual_domains_maps.cf

user = postfix
password = *******
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain

DB名postfixのdomain.descriptionをSELECTしているらしいので、該当カラムをみてみると空白でした。
おかしーなーと思って別のpostfixが稼働してるサーバーの該当カラムを見てみると
「No Description」という文字列が入っているではありませんか。

つまり、postfixadminでドメインを追加する時に、説明を空白のままドメインを追加すると
メルアドを追加してもメールボックスが作成されないということでした。

postfixadminでドメインを追加する時は説明を入力するようにしよう!!

courier-imap-4.10がインストールできない件

さくらのVPS、centos5.5にメールサーバーをたてようとして、
courier-imap-4.10.0-1のRPMをインストールでエラー。

/bin/systemctl is needed by courier-imap-4.10.0-1.x86_64

ぐぐってもまったく情報がなかったので、どうしたもんかと悩んだ結果、
courier-imapのバージョンを4.9.3に下げてインストールすると成功!!

新しけりゃいいってこともなさそう。
http://sourceforge.net/projects/courier/files/imap/4.9.3/

webminのインストールと日本語化

2013年3月25日追記

新しいサーバーのセットアップをしようとした時に最新のバージョンを使うと最初から日本語になってました。便利\(^o^)/
Webmin バージョン 1.620
CentOS バージョン 6.4


webサイトのサーバーをいじる時に、

コマンドラインをガツガツ編集して「オレ流?」って言いたい!araishiです。

でも間違えたら怖いので、GUIのツールをインストールしてブラウザで編集してます。
コマンドがわからなくても、なんとなくで操作できるところが良いですね!

webmin