(103) Intel NUCを Subversionサーバーにする。 【採用決定】

投稿者: | 2018年11月6日

1. やりたいこと

過去記事の Raspberry Piを Subversionサーバーにする。【不採用】 では、Raspberry Piを Subversionサーバーとして使おうと試みたが、DBのバックアップとリストアに難あり とのジャッジ結果で断念した。

で…
次の策として、Raspberry Piよりも少し高性能なミニミニPCである Intel NUC 上で同じことをしてみたい。
たぶんこれなら実用に耐えうる小型 Subversion専用マシンが出来るだろう。

ちなみに Intel NUC とは Intel社製の小型コンピュータのこと。
NUCとは Next Unit of Computing kit の略だそうな。

Raspberry Piや Arduinoと比較して、少しリッチな SBC(Single Board Computer)という感じで、高機能な産業用機器に組み込むことを目的としているようだ。

https://www.intel.co.jp/content/www/jp/ja/products/boards-kits/nuc.html

で、今回は、
Intel NUCを Subversion専用物理サーバーとして使いたい。
という目的で作業してみる。

ちょっと贅沢かも…
まぁ徐々に他の用途でもこの PCを使って行くだろうから良しとしよう。

2. Intel NUCを購入する。

今回購入したのはこの4点だ。

ヤフオクでよさげな物が見つからなかったので、すべて 新品 で購入した。

1) Intel NUC BOXNUC7PJYH
21,980円

2) SanDisk 240GB SSD SDSSDA-240G-J26
5,437円

3) Transcend DDR4-2400 8GBメモリ JM2400HSB-8G
8,978円

4) 電源ケーブル 2m
576円
※NUCにはACアダプターが付属しているが、なぜか電源ケーブルが付属していない。AC電源は100V~220Vに対応しているので、コネクタ形状に縛られずに全世界で同じパッケージを販売できるようにしているのだろう。

合計: 36,971円

ヤフオクでそこそこのワークステーションが買えてしまう値段だ。
でも、今回の目的は場所を取らないミニミニサーバーを作ることなので仕方がない。

   

※上記4点とは別に必要な物は?
Intel NUCの初期設定や OSインストールのために以下の物が必要だ。
1) HDMI接続できるディスプレイ
2) HDMIケーブル(Intel NUCとディスプレイを繋ぐ)
3) USBキーボード
4) USBマウス
5) USBメモリ(OSインストール、BIOSアップデートに使う場合)
6) インターネット接続されたパソコン(OSインストーラや BIOS更新版をダウンロードしてUSBメモリに書き込む必要がある場合)

3. Intel NUCを組み立てる。

組み立てるというほどのものではない。
Intel NUCに ストレージメモリ の2点を載せるだけだ。

1) プラスドライバーを使って裏蓋を開ける。

Intel NUCは一辺が 12cmほどのほぼ正方形の小さな箱だ。
プラスドライバが 1本あればよい。

2) 裏蓋の中のスペースに 2.5インチ SSDを挿入する。

SATAコネクタの向きに注意してがっちりと挿し込むこと。

3) メモリを装着する。

斜めに挿し込み、下に押し付けてカチッとはめる。
力尽くで押さないように…

4) 蓋を閉めたら出来上がり。

丁寧にやっても10分の作業時間だ。

5. Intel NUCに Linuxをインストールする。

(1) Linuxインストール用の USBメモリを作る。

もし、USB外付けの DVDドライブを持っていれば、DVDに ISOファイルを焼いて使ってもよい。
うちには外付け DVDドライブが無いので、USBメモリをインストール用に使用する。

1) Ubuntuインストーラをダウンロードする。

CentOS or Ubuntuで迷ったが、うちには CentOSマシンが 3台あるので、今回は Ubuntu にした。
以下のサイトから ISOファイルをダウンロードする。

https://www.ubuntu.com/download/server/thank-you?country=JP&version=18.04.1&architecture=amd64

2) Rufusを使って USBメモリに起動ディスクを作る。

Rufusはこちらから入手する。

https://rufus.ie/ja_JP.html

Rufusを起動して 1)でダウンロードした ISOファイルを起動ディスクとして書き込む。

(2) Linuxをインストールする。

Intel NUCに USBキーボードと USBマウスを繋ぐ。
Intel NUCに HDMIケーブルを挿してディスプレイと繋ぐ。

上記 2)で作った USBメモリを Intel NUCに挿し、NUCの電源を入れる。

Ubuntuのインストーラーが起動する。
後はワークステーションへのインストールと同じ手順で Ubuntuをインストールする。

4. Intel NUCの BIOSをアップデートする。

(1) 最新の BIOSを入手する。

以下の Intel公式サイトから最新版の BIOSを入手する。
うちの NUCは BOXNUC7PJYH なる型番なので、それ用の物をダウンロードする。

https://downloadcenter.intel.com/ja/product/98414/-PC

ダウンロードしたファイルを USBメモリに入れる。
今回は普通に Explorer上でコピーすればよい。

(2) 最新の BIOSをインストールする。

上記(1)の USBメモリを Intel NUCに挿し、NUCを電源ONする。
電源投入後に [F7]キー を押下すると、以下の画面が表示される。

ここでは、USBメモリ(TransMemory)を選択する。

ここでは、ダウンロードした BIOSファイル(JY0045.bio)を選択する。

BIOS更新 GO!

後は終わるまで待てばよい。

この時点で Intel NUCを使う準備ができた。

6. Linuxの初期設定をする。

これは以下の過去記事とほぼ同じことを行う。
(102) Raspberry Piを Subversionサーバーにする。【不採用】

なので…
細かい説明は抜きにして、手順のみを備忘録として書いておく。

1) DHCPをやめて固定IPアドレスを設定する。

家の中ではマシンに固定IPを付与しているので Intel NUCもこのルールに従わせる。

sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.org
sudo vi /etc/netplan/50-cloud-init.yaml

以下のように固定IPアドレス 192.168.1.2 に設定した。

network:
    ethernets:
        eno1:
            addresses:
            - 192.168.1.2/24
            gateway4: 192.168.1.1
            dhcp4: false
            optional: true
            nameservers:
                addresses:
                    - 192.168.1.1
    version: 2

2) リポジトリを追加する。

main, restricted に加えて universe も追加しておく。

sudo add-apt-repository universe
sudo apt update

1) Net-toolsをインストールする。

sudo apt install net-tools

2) SSHサーバーをインストールする。

sudo apt install openssh-server

3) FTPサーバーをインストールする。

sudo apt install vsftpd
sudo systemctl enable vsftpd    # サービスの自動起動を有効にする。
sudo systemctl start vsftpd     # サービスを起動する。
sudo systemctl status vsftpd    # サービスの状態を表示する。

4) HTTPサーバーをインストールする。

sudo apt install apache2
sudo systemctl enable apache2
sudo systemctl restart apache2
sudo systemctl status apache2

(5) firewallをインストールする。

sudo apt install ufw
sudo systemctl enable ufw

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow ftp
sudo ufw enable
sudo ufw status

sudo systemctl restart ufw
sudo systemctl status ufw

7. いよいよ Subversionを入れる。

(1) Subversionをインストールする。

sudo apt-get install subversion
sudo apt-get install subversion-tools
sudo apt-get install libapache2-mod-svn

(2) HTTP経由で Subversionを制御できるようにする。

Subversion用の設定ファイルを新規作成する。

sudo vi /etc/apache2/mods-available/dav_svn.conf

以下を記述する。パスは自分の環境に合わせて指定すること。
たまたま /var/svn/repos にしているが、apacheユーザーでアクセスできるようにすればどこでもよい。

<Location /svn>
  DAV svn
  SVNParentPath /var/svn/repos
</Location>

Apacheを再起動する。

sudo systemctl restart apache2
sudo systemctl status apache2

(3) Subversionリポジトリを作成する。

ここでは仮にリポジトリ名を myproj とする。

sudo mkdir -p /var/svn/repos
sudo svnadmin create /var/svn/repos/myproj
sudo chown -R www-data:www-data /var/svn/repos

(4) Windowsパソコンから Intel NUC上の Subversionにアクセスする。

一先ず Windowsパソコンの WEBブラウザから Intel NUC上の Subversionにアクセスできるようになった!
※以下の画像は既存リポジトリをリストア後のためバージョンが 904と大きい。

8. おまけ

(1) リポジトリのバックアップ

下記のリポジトリ名、ファイル名は自分の環境に合わせて指定すること。

REPOS=/var/svn/repos/myproj
FILEOUT=svn_repos_myproj.dump
sudo svnadmin dump $REPOS > $FILEOUT

(2) リポジトリのリストア

下記のリポジトリ名、ファイル名は自分の環境に合わせて指定すること。

REPOS=/var/svn/repos/myproj
DUMPFILE=svn_repos_myproj.dump
sudo svnadmin load $REPOS < $DUMPFILE
sudo chown -R www-data:www-data /var/svn/repos

(3) 定期バックアップ用のスクリプトを作る。

backup_my_svn.sh

#!/bin/bash
NOW=`date +%Y%m%d`
REPOS=/var/svn/repos/myproj
FILEOUT=svn_repos_myproj_${NOW}.dump
svnadmin dump $REPOS > $FILEOUT

これを crond で周期実行すればよい。
過去記事 (53) crondで定期的にスクリプトを実行 を参照のこと。

9. 所感

・こんな感じで NASの横の隙間を埋めるように鎮座している。
 

・WiFiでネットに繋げるので物理的なケーブル接続は電源ライン 1本のみだ。
・小さいが 4コア 4スレッド、DDR4メモリ8GB, SSD 240GBの立派なマシンだ。
・速度性能的にも十分に使えそうだ!
・消費電力はアイドル時で 10W未満、4コアフルに使って動作させても 20W程度と省エネだ。
・理想通りのミニミニサーバーができた!
しばらくは Intel NUC の Subversionを使い続けよう。
そして、開発以外の他の用途でも使って行こう。

満足満足

   

10. 参考情報

ありがとうございます。 m(_ _)m
https://syobon.jp/2018/05/21/gemini-lake-nuc-review/
https://qiita.com/sinsengumi/items/24d726ec6c761fc75cc9
https://sqlazure.jp/r/ubuntu/857/


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です