2012年6月8日金曜日

2012年5月版 「さくらのVPS」 Ubuntu Server ガイド

Code Jam やその他モロモロでおくれにおくれ、「さくらのVPS」の移行優遇策も時期的にスルーしてしまったのですが、「さくらのVPS」を、最新の Ubuntu Server 特に 12.04 LTS で使いたいという需要があるのではということで、2012年5月版と言うことで、過去に書いた記事を現在の状況に合わせて再度書いてみたいと思います。

サーバー要件の調査


何事にも計画を立てるということは大切なのですが、サーバーを構築するのでも計画を立てて、要件を詰めておく必要があります。10.04 の時の記事の再掲になりますが、
  • ホスト名
  • DNSドメイン名
  • DNS FQDN名
  • IPアドレス
  • ネットマスク
  • ルーティング情報(デフォルトゲートウェイも含む)
  • DNSサーバ指定(複数指定されていればその全て)
  • DNSサーチドメイン名
  • NTPサーバ
の各項目を調べておいてください。「VNCコンソール」については当時ベータ版扱いでしたが、今では正式なサービスとなっているので、こちらを使うとよりイメージしやすいかもしれません。

カスタムOSインストールが便利


この記事を書く段階では「カスタムOSインストール」には Ubuntu 12.04 LTS がまだ用意されていなかったのですが、さすが LTS というだけあって、6/7 には利用できるようになりました。



試しに「カスタムOSインストール」でインストールしてみましたが、パッケージの選択が「さくらのVPS」の標準OSの CentOS に準拠して、最初から OpenSSH が立ち上がっている状態となりました。深いことは考えずにこれを利用してみるのもいいかもしれません。

ただし、普通のPCと違っていきなりインターネットに接続している(VPSですからあたりまえですよね)ので、即刻 ufw や OpenSSH の設定を見なおしておくと良いと思います。

この辺のノウハウは Ubuntu Magazine Vol.07 で徹底紹介していますので、参考にしてみると良いでしょう。

Ubuntu Magazine はもうすぐ最新号の Vol.08 が出る予定ですから、もうしばらくするとバックナンバーのPDFファイルが編集部で公開される予定なのでそちらをチェックしてみても良いかと思います(言うまでもないことですが、グラビアなどの公開されない記事もあるので実物を購入するのも選択としてアリです)。

ガチで最小構成でインストールする場合には


現在は「さくらのVPS」の「カスタムOSインストール」で 12.04 LTS がインストールできるようになりましたが、『ガチで最小構成でインストール』するためには、ネットワークインストーラーを入手し、Grub から起動する形でインストールを進めます(ただしネットワーク資源的にはミラーサーバーから必要なものを適宜ダウンロードするので「カスタムOSインストール」のほうが無難かもしれません)。

 

Ubuntu 12.04 LTS amd64 のネットワークインストーラーの入手


具体的にネットワークインストーラーを入手するわけですが、 12.04 LTS のコードネームは Precise Pangolin ですので、標準OSのCentOS上で、

# mkdir /boot/ubuntu
# cd /boot/ubuntu
# wget http://jp.archive.ubuntu.com/ubuntu/dists/precise/main/
       installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux
...
# wget http://jp.archive.ubuntu.com/ubuntu/dists/precise/main/
       installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz
(URLが長いので折り返しましたが、この部分は1行で続けて書いてください)

としてダウンロードします。 標準でインストールされる CentOS 6.2 構成でカーネルや initrd などを起動時に読み出す /boot パーティションを間借りするのがコツです。

設置したネットワークインストーラーの起動


この辺は以前の記事と同様の操作で、リブートして、Grub のコマンドラインから設置したインストーラーを起動することになります。

# reboot

として再起動し、Press any key to continue と出てくるので何かキーを押し、その後 Booting CentOS と出たところでも再度何かキーを押して、Grub のメニュー画面を表示させます。さらに Grub のメニュー画面では 'c' を押してコマンドラインモードに移ります。





Grub のコマンドラインでは

grub> root (hd0,0)
grub> kernel /ubuntu/linux
grub> initrd /ubuntu/initrd.gz
grub> boot

としてネットワークインストーラーを手動起動します。


以前の記事のくり返しになりますが、キーボードは us モードになっているので、一般的な日本語キーボードでは開き丸カッコは Shift + 9 、閉じ丸カッコは入力できないので root (hd0,0 とここまで入力したところで TAB キーを押して閉じ丸カッコを補完させます。また、kernel の部分についてはVNC コンソールを使う前提であれば、特にオプションを指定する必要はありません。kernel や initrd のところでもファイル名については TAB キーによる補完が効くので、適当なところまで入力した後に TAB キーを押してとっとと補完させておくのがスマートです。

うまくいくとインストーラーが起動します。

Ubuntu のインストール


あとは画面に従ってインストールを進めていくことになります。この辺はもういつもと同じ感じということで、Ubuntu Magazine Vol.07 を参考にしましょう。

コンソール環境の整備


ネットワークインストーラーからインストールした際にもコンソール環境の設定をしておくと、VNCだけではなく「リモートコンソール」からメンテナンスができて便利かもしれません。/etc/init/ttyS0.conf や、/etc/default/grub を必要に応じて編集し反映させておくといいでしょう。なお、以前記事で書いたような、/usr/sbin/grub-mkconfig や /etc/grub.d/00_header への修正は必要なくなったので、ご安心を。

/etc/init/ttyS0.conf

# ttyS0 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
 
start on stopped rc RUNLEVEL=[2345] and (
            not-container or
            container CONTAINER=lxc or
            container CONTAINER=lxc-libvirt)
 
stop on runlevel [!2345]
 
respawn
exec /sbin/getty -8 115200 ttyS0

/etc/default/grub

# If you change this file, run 'update-grub' afterwards to update               
# /boot/grub/grub.cfg.                                                          
# For full documentation of the options in this file, see:                      
#   info -f grub -n 'Simple configuration'                                      
                                                                                
GRUB_DEFAULT=0                                                                  
# GRUB_HIDDEN_TIMEOUT=0                                                         
GRUB_HIDDEN_TIMEOUT_QUIET=false                                                 
GRUB_TIMEOUT=5                                                                  
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`                
GRUB_CMDLINE_LINUX_DEFAULT="quiet"                                              
GRUB_CMDLINE_LINUX="nosplash console=tty1 console=ttyS0,115200n8r"              
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"                                                                              
                                                                                
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
 
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
GRUB_TERMINAL="serial console"
 
# The resolution used on graphical terminal
(以下省略)

なお ntp や OpenSSH、 ファイヤーウォールなどの設定についてはUbuntu Magazine Vol.07以前の記事を参考にすると良いでしょう。