さくらVPS yumパッケージのアップデート

結構頻繁にパッケージアップデートしたり、再起動したりしたいタイプのあゆたやです。

安定稼動しなければいけないものを特に置いていないので、好きに弄くり倒してるんですが、うっかりyumパッケージのアップデートでKernelまで更新してしまって、アップデート後といえば再起動!でVPSが起動しなくなったので、それを回避するためのメモ。

yum update時にKernelを除外する設定

と、オマケにCPUアーキテクチャの異なるバージョン(x86_64=64bit以外)を除外する。

$sudo vim /etc/yum.conf

#最後の行に追加
exclude=kernel* *.i386 *.584 *.686

yum update実行

$sudo yum update

途中でアップデートしてもいいか確認が出るので

================================================================================
Upgrade 57 Package(s)

Total download size: 43 M
Is this ok [y/N]: y

yしてしばし待つのみ。

アップデートし残しがないか確認

$yum check-update

で確認して、パッケージが表示されなければOK。
あったらもう一度updateする。

もし再起動したければ

SSHは一度切断されるので、順調に起動が出来ない場合などにはもちろん再接続できません。
必ずさくらVPSコンパネのリモートコンソールが見られる状況で行いましょう。

$sudo reboot

ただし!
サーバはどのくらいの頻度で定期リブートしてますか? (ちょっと古いけど)

利点と障害正規サーバーの再起動

というわけで基本的には必要に迫られるまで再起動をしないもののようです。

アップデート後に再起動したらSSH接続できないときは→SSH接続できないときにVNCコンソールで頑張って復帰する

最後に、Redmineからメールが送信できるかちゃんとテストしようね!(経験談)

さくらVPSでRedmineを動かすまで

どうしても動かなくて一度初期化したりなんだりしましたが、とりあえず設定完了してきましたメモ。

著者前提スキル:

  • Linuxは10年くらい前にCUIでVineLinux4でゼミのサーバー立てたことがある程度
    その後は設定済みレンタルサーバーをお好みで変更してたくらい。
  • XAMPPが出てからは開発環境もずっとXAMPP-Lite
  • Ruby触ったこと無い
  • Redmine使ったことない

目的:

  1. RedmineをWEBサーバ経由で使う(当然ですが
  2. Redmineからの通知メールを送りたい
  3. しばらくの間ログ見たりするのにSSHが要る(さくらの管理画面からでもターミナル開けるのですが)
  4. テーマをいじると思うのでFTPもあけとこう(使い終わったら閉じる)

取り掛かる前に読んだ所
さくらのVPS を改めて使いはじめる 1 – 使用準備、SSH 公開鍵認証シリーズ
改める前のほうの記事と合わせてとても参考になった。

先にどういうサーバーにするか決めてからとりかかるのが大切だなあと(しみじみ)。

さくらVPSのデフォルトであるCentOS6.4をつかう。
ちょうどRedmine.JP BlogさんのCentOS6向けRedmine2.0インストール記事が2012年5月15日付けで上がっていたので、そちらを参考にする。

Redmine 2.0をCentOS 6にインストールする手順

基本的には上記の通り進めていけば…というか、この通りやってやっと動くようになった感じです。
別手順で慎重にやったときは、最終的にRedmine::l18nで起きるエラーが解決できずに初期化することになりました。
ひとまずは上記の通り設定。

RedmineがURLでアクセスできるようになったらiptablesの設定
~/tools/ipt.shなどの名前で作ってからまとめて実行が良いと思います。

#!/bin/sh

/sbin/iptables -F
/sbin/iptables -X

/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

/sbin/iptables -A INPUT -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -s 192.168.0.0/16 -j DROP

/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# INPUT : SSH, HTTP, FTPx2
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 22    -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 80    -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 20    -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 21    -j ACCEPT

# OUTPUT : SSH, HTTP, FTPx2, MAIL
/sbin/iptables -A OUTPUT -p tcp -m state --state NEW --dport 22   -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m state --state NEW --dport 80   -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m state --state NEW --dport 20   -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m state --state NEW --dport 21   -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m state --state NEW --dport 25   -j ACCEPT

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

/etc/rc.d/init.d/iptables save
/sbin/service iptables restart

#IPv6用ファイアウォールの設定
/sbin/ip6tables -F
/sbin/ip6tables -X

/sbin/ip6tables -P INPUT DROP
/sbin/ip6tables -P OUTPUT DROP
/sbin/ip6tables -P FORWARD DROP

/etc/rc.d/init.d/ip6tables save
/sbin/service ip6tables restart

SSHのポートは22から他のものに変更しています。
さくらのVPS を使いはじめる 2 – sudo と SSH ポート変更

なお、

※2 IPv6アドレスには今後対応予定となっております。

さくらのVPS公式スペック表にこのように書いてあったので、とりあえずDROP!ヽ(゚∀゚)ノ

/var/log/maillogにredmine@example.netがあって気持ち悪いときはこちらを参照。
redmine で 通知メールなどの from を設定する

Redmineの再起動は基本Apacheのservice httpd restartで行うのですが、こんな方法もある様子。
PassengerでApache組み込みしたRedmineをApache再起動せずにRedmineだけ再起動する方法

さて、かなり他力本願でここまできてRedmineをブラウザから動かすことはできたので、次はラスボスであるメール送信についてまとめます…たぶん…