見出し画像

AliExpressでミニPCを買ってMicroStackで遊んでみた

2010/12/26から2021/01/06にかけて、技術書同人誌のイベント「技術書典10」が開催されている。

そこで販売されているssmjp同人部の新刊に今回も記事を書かせてもらったので、こっちにも転載しつつ宣伝してみる。

今回は薄めでリーズナブルな価格なのでみんな買ってね。

完全オンライン開催ということもあり、会場でボクと握手、ということは残念ながらできないんだけど、ミャンマーまで来てくれたらボクと握手できるので、頑張って来てね!!
飛行機はまだ飛んでないけどね。

モチベーション

お仕事でOpenStackのネットワーク回りの挙動を調べる必要があったんだけど、コロナ騒動のおかげで物理機材が置いてある場所に気軽に行くことができなくなってしまった。
仕方がないので、検証用の機材を自前で買うことにしたよ。

機種選定

やりたいことが特殊なのと、家や出先で作業をする必要があったので、こういう要件のPCがないかなと探してみた。

- ネットワークポートが4つ以上欲しい
- 小型のほうが良い。できれば持ち運びたい。
- うるさくないほうが良い。できればファンレス。
- メモリは最低でも16GB欲しい。
- CPUはそこそこ強いものが欲しい。
- お値段はそんなに高くないほうが良い

ミニPCはたくさん出てるから、いろいろあるよな、と思ったけど、全然出てこない。
Amazon等を見ても該当しそうなものはまったくない。
秋葉原の店頭にもない。
仕方がないので手頃なミニPCに拡張ボードを差して、とも思ったけどミニPCには拡張ボードが差さらなかったり。
どうしようかなあ。

AliExpressで購入

困りはてて、なにか良いのないのかしら、とFacebookに書きこんでみたらAliExpressでそれっぽいのが売ってるよ、と言われたよ。
持つべきものはマニアックな友だ。

見に行ってみたら、まさに欲しかったものに近いものがあったよ。

- ネットワークポートは6つ
- 小型、ファンレス
- メモリはDDR3Lが1枚差さるので、16GBまではいける?
- CPUはいくつか選べる。1番強いのはCore i5-7200U。

メモリとmSATAのSSDも合わせてサクっと購入。
総額は5万円以下。
AliExpressは、Amazonで買うよりだいたい安いよねえ。

ただ、コロナ禍の最中で海外からの流通が乱れまくってたので、中国からいつ配送されるかは全然読めなかったのよね。
そしてやっぱり遅れに遅れて、本体が届いたのは、注文から50日後。
さらに開封してみたらACアダプタが入ってない。
問い合わせたら別便で送っていると言われたけど、いつ来るのか全然わからなかったので、あきらめて同じ規格と思われるものをAmazonで購入。
Amazonだと2日後に届くのはすごいよねえ。

ちなみにAliExpressで頼んだACアダプタはその20日後に無事に届きましたよ。

開封して中身を確認

届いたものを確認。

外観はこんな感じ。
ネットワークポートがたくさんあるのと、シリアルポートが付いている以外はわりと普通のPCだ。
ファンレスなので、放熱用のフィンがたくさんある。

画像1

画像2

中身はこんな感じ。
CPUは交換できないけど、メモリとSSDは簡単に交換可能。

画像3

OSインストール

ブート可能なUSBキーからインストール。
Ubuntu 20.04 LTS Serverはとくに問題なくさくっとインストールできた。
ネットワークカードも全部普通に認識しているし変なエラーも出ていない。
よしよし。


MicroStackインストール

OpenStackは真面目にインストールすると結構大変。
でも楽をしたい人のための、簡単パッケージとしてMicroStackというものがあるのよね。
インストールはとっても簡単。

下準備としてMicroStackのdefaultで使われるIPアドレスを適当なネットワークインターフェイスに割りふってあげる。
すでに利用しているインターフェースに重ねて割りあてても良い。

sudo ip addr add 10.20.20.1/24 dev <インターフェイス名>

MicroStackはsnapパッケージになっているので、snapコマンドでインストールと開始。

sudo snap install microstack --beta --classic
sudo microstack.init --auto
sudo snap start microstack

MicroStackを使ってみる

この状態で、ウェブからログインして操作できるようになっているんだけど、外部のPCのブラウザから繋ぐためには、適切にルーティングをしてやる必要がある。
手元のUbuntu Desktopだとこんなコマンドを叩く。

sudo ip route add 10.20.20.0/24 via <MicroStackのサーバIPアドレス> \\
 dev <手元のPCのインターフェイス名>

ブラウザで以下の管理画面を叩けばすぐにOpenStackが使えるぞ。
簡単簡単!!

http://10.20.20.1/

MicroStackのカスタマイズ

簡単なのはここまで。
動くのはわかったので、自分用にカスタマイズするぞ、と思うと、途端に無理ゲーになるのよね。
たとえばIPアドレスを10.20.20.1から別のものに変えようとするだけでもかなり難しい。

難しい理由は2つ。
snapパッケージに起因する問題とMicroStackの作り的な問題がある。

snapパッケージに起因する問題

snapパッケージは構成するファイルをSquashFSという仕組みで1つのファイルにまとめて配布されている。
なので、その中の設定ファイルを細かくいじろうとすると、固められたファイルを展開して、修正して、まとめ直す、というステップを踏む必要がある。

具体的には以下のような手順で変更することになるんだけど面倒なのよねえ。

作業場所へのファイルの展開

midir work
cd work
sudo unsquashfs /var/lib/snapd/snaps/microstack_196.snap 

設定ファイルの修正

sudo vi squashfs-root/bin/set-default-config 
sudo vi squashfs-root/templates/05_snap_tweaks.j2
...

SquashFS形式ファイルの再作成と再配置

sudo mksquashfs squashfs-root microstack_196.snap
 
sudo cp microstack_196.snap /var/lib/snapd/snaps/microstack_196.snap

snapパッケージの再マウントと有効化

sudo mount -t squashfs -o ro,nodev,relatime,x-gdu.hide \\
 /var/lib/snapd/snaps/microstack_196.snap /snap/microstack/196
 
sudo snap enable microstack


MicroStackパッケージに起因する問題

そして設定ファイルや管理用のコマンドを見ると、ハードコードされている部分があまりにも多すぎるのよね。
IPアドレスが書きこまれている箇所だけでも結構たくさんある。
設定ファイルだけじゃなくて、Pythonスクリプトの中にもIPアドレスが書きこまれていたりする。

MicroStackの限界

MicroStackはカスタマイズして使おうとしちゃいけないんだろうね。
でもまあ手軽にOpenStackのオペレーションを体験する、という目的なら、とても良いパッケージなので、手軽に遊んでみると良いと思うよ。
snapなので消すのも簡単だしね。


まとめ

- AliExpressだと日本で売ってないようなPCも買えちゃうぞ
- コロナで流通が乱れまくっててもちゃんと届いたぞ
- MicroStackは簡単にOpenStack体験ができるので手軽に試してみるといいぞ


この記事が気に入ったらサポートをしてみませんか?