webArenaの360円VPSにopenSUSE Leap 15をリモートインストールする

webArenaの360円VPSにopenSUSE Leap 15をリモートインストールする

これまで、イタリアのaruba.itというところで月1EURのVPSを借りてopenSUSE Leap15を動かしていたのですが、そちらが年明けから月3EURに値上がりをしまして、月1EURじゃなければわざわざ遠いEUのサーバーを借りている理由もないということで引っ越しをしました

で、月1〜2ドルもしくは1〜2EURのサーバーを探しましたが、どうにも条件にマッチしたところがなく、だったら回線の速い国内VPSにすっかとなりまして、そういえばwebArenaが値下げして360円プランでもメモリ1Gのディスク20GBになってたなということで借りることにしました

が、こちらはOSテンプレートがCentOS6、7とUbuntu18.04しかないため、Ubuntu18.04を踏み台としてopenSUSE Leap 15をリモートインストールすることにしました

openSUSE Remote Installとは

openSUSEをインストールする方法としては、一般的な手法としてCDなりUSBメディアなりのインストールメディアから起動してインストーラを立ち上げる方法がありますが、その他に、grubからインストーラのvmlinuzとinitrdを起動してSSH経由でインストールするというリモートインストールという手法があり、公式wikiでも解説されています

なので今回はある意味その記事をなぞるだけの手抜き記事でもあります

踏み台OSのインストール

今回は踏み台OSとしてubuntu 18.04を使いますのでwebArenaのマニュアルに従ってインストールします。

マニュアルに従えば良いだけなので細かいところは割愛しますが、ubuntuの初期ユーザーと初期パスワードは相当マニュアルを熟読しないとわかりにくいところにありますので注意してください

webArenaのubuntuテンプレートはデフォルトで公開鍵認証のみで、パスワード認証はOFFになっていますが、今回リモートインストールのために一時的にパスワード認証を使いますので一度sshd_configを弄ってパスワードログイン有効にしてパスワードログインが可能であることを確認してください(インフラ側ファイアウォール等で塞がれていないことを確認のため)

インストーラの取得

/bootにインストーラのvmlinuzとinitrdを導入します

公式wikiに書かれているやり方でOKですが、download.opensuse.orgより理研のミラーの方が速いのでこちらを使います

1
2
sudo wget --output-document=/boot/vmlinuz.install http://ftp.riken.jp/Linux/opensuse/distribution/leap/15.0/repo/oss/boot/x86_64/loader/linux
sudo wget --output-document=/boot/initrd.install http://ftp.riken.jp/Linux/opensuse/distribution/leap/15.0/repo/oss/boot/x86_64/loader/initrd

ちなみに入れるのがLeap 15ではなくTumbleweedならばこう

1
2
sudo wget --output-document=/boot/vmlinuz.install http://ftp.riken.jp/Linux/opensuse/tumbleweed/repo/oss/boot/x86_64/loader/linux
sudo wget --output-document=/boot/initrd.install http://ftp.riken.jp/Linux/opensuse/tumbleweed/repo/oss/boot/x86_64/loader/initrd

IPアドレスの確認

1
ip a

でVPSのIPアドレスとネットマスクを、

1
ip route show

でゲートウェイを確認しておきます

grubエントリーの追加

grubにインストーラを起動するメニュー項目を追加して、それをデフォルトにします

ubuntuの場合。/etc/grub.d/40_customにメニューエントリを追加します

1
sudo vi /etc/grub.d/40_custom

1
2
3
4
5
6
menuentry 'openSUSE install' {
insmod gzio
set root='hd0,msdos1'
linux /boot/vmlinuz.install noapic usessh=1 sshpassword="[それなりに複雑なパスワード]" install=http://ftp.riken.jp/Linux/opensuse/distribution/leap/15.0/repo/oss hostip=[調べたIPアドレス] netmask=[調べたネットマスク] gateway=[調べたゲートウェイ] nameserver=1.1.1.1
initrd /boot/initrd.install
}

Tumbleweedならこう

1
2
3
4
5
6
menuentry 'openSUSE install' {
insmod gzio
set root='hd0,msdos1'
linux /boot/vmlinuz.install noapic usessh=1 sshpassword="[それなりに複雑なパスワード]" install=http://ftp.riken.jp/Linux/opensuse/tumbleweed/repo/oss hostip=[調べたIPアドレス] netmask=[調べたネットマスク] gateway=[調べたゲートウェイ] nameserver=1.1.1.1
initrd /boot/initrd.install
}

パスワードは単純なパスワードだとインストーラ起動時に弾かれて起動しなくなってしまうという罠がありますので、まあそのへんのネットサービス登録時にありがちな

  • 8文字以上
  • 大文字小文字数字記号を必ず混ぜる

あたりを守って設定してください

nameserverは、みんな大好きgoogle DNS(8.8.8.8)かcloudflareのDNS(1.1.1.1)を使えばOKです

メニューエントリを登録したら/etc/default/grubを弄ってデフォルトエントリーにします

grub2ではデフォルトエントリーの指定が番号ではなくて名前になっているので注意してください

1
sudo vi /etc/default/grub
1
GRUB_DEFAULT="openSUSE install"

ここまで編集したら

1
sudo update-grub

で編集内容を反映させてください

ここで設定を間違えるとVPSに接続不能になってしまい、踏み台OSのインストールからやり直しとなりますのでよーく確認してください

よく確認した後、vpsをリブートします

1
sudo reboot

VPSに接続

VPSをリブートしたら、VPSにX転送ありで接続すればインストーラが起動できます

Linuxデスクトップからの接続であれば

1
ssh -X [vpsのIPアドレス]

で、windowsであればmovaxtermなりのX11ありのターミナルで接続します

この時以前に踏み台OSにSSH接続していたのであれば、当然SSHホストキーが変わっていますので、それ相応の処置が必要になりますので注意してください

openSUSEインストーラがデバイスを自動認識して、インストールのベースシステムをRAMディスクに展開するまでにそれなりの時間(4〜5分?)がかかりますのでなかなか繋がらないからと言って慌てないよう

先程設定したパスワードを入れてログインすると、以下のようなメッセージが出るはずです

1
2
3
4
5
6
7
8
Password: 

openSUSE Leap 15.0 Installation

Run yast.ssh to start the installation.

/usr/bin/xauth: file /root/.Xauthority does not exist
0:install:~ #

指示の通り、yast,sshを実行すればいつものインストーラが立ち上がりますので

1
# yast.ssh

shot1

言語を日本語に設定してインストーラを開始します
shot2

概ねはインストーラに従ってインストールを進めればOKですが
shot3

パーティション設定だけはwebArenaのローカルルールに従っておいたほうが安全なので独自に設定を行います

「熟練者向けパーティション設定」>「既存のパーティション設定を元にする」を選んでください

shot4

webArenaのVPSディスクにはVPSで使って良い20GBの領域と別に、10MBぐらいのVPSメタデータが入ったパーティションが存在しますので、これを壊さないように設定します

ディスクsda>sda1>「編集」を選びます
(スクリーンショットは検証用にローカル環境で建てたVMなのでデバイス名とパーティションサイズが微妙に異なりますがそのへんは読み替えてくださいねで)
shot5

/dev/sda1を「ext4でフォーマット」で「/にマウント」します
shot6

swapはインストール後にswapfileを作る方針で(元々のubuntuもswapfile式を使っています)

openSUSEらしくbtrfsでフォーマットしたいところですが、改めてwebarenaのテンプレートに戻す必要が出たときにトラブルの元になりそうなので日和りましたw

コンソール画面が使えないwebArenaの場合、snapperの恩恵もないですし

shot7

あとはお好みで設定しつつ、最終的にはこんな感じで

webarenaの場合、インフラ側でFWを設定する感じなので、openSUSE側のfirewallを切るのも手だと思います。
あるいはopenSUSE側でfirewallを受け持ってwebarena側のFWは素通し設定にしてしまうのもありかと思いますが、その場合openSUSE側でfirewall設定をしくじるとコンソール画面のないwebArenaではログイン不能になってしまうので、webArenaのFWに任せたほうが安全だと思います

(自分はopenSUSE側のFWを切ってます)

shot8

あとは普通にインストールが進みます
ftp.riken.jpを使っていれば10分前後でしょうか

shot9

インストール後の設定

swapfileの設定

スワップが設定されていませんのでswapfileを設定します

1
2
3
4
$ free
total used free shared buff/cache available
Mem: 1003048 64628 741828 7060 196592 788252
Swap: 0 0 0

今回は1GBのswap用ファイルを作ります(増やしたければcountを増やしてください)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.926476 s, 1.2 GB/s

$ sudo chmod 600 /swapfile

$sudo mkswap /swapfile
スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
ラベルはありません, UUID=cc969dda-914d-4f42-a063-f391baaba9fa

$ sudo swapon /swapfile

$ free
total used free shared buff/cache available
Mem: 1003048 65060 62484 7060 875504 777376
Swap: 1048572 0 1048572

swapが効くことを確認したら/etc/fstabにswapマウントを追加します

1
sudo vi /etc/fstab
1
/swapfile     swap      swap    defaults        0 0

SSH認証方式の変更

デフォルトではSSHがパスワード認証になっていますので公開鍵認証に切り替えて、ポートもwell knownの22番から変更するのをおすすめします

あとはお好きに各種サーバーを設定してください

まとめ

openSUSEがサポートされていない各種VPSでも、sshで入ることができ、grubを弄ることができればopenSUSEはインストールできますので、ぜひ一度お試しください

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×