Raspberry Pi で Let's Encrypt (続き)

サイトを引っ越した。 引っ越しページも何も無く、唐突に動かしたので、元々、独り言ブログだったのが、さらに極まることに(笑) 以前、dynamic dns サービスの mydns と Let’s Encrypt の組み合わせで、制限に当たってうまくいかないという話と、格安 SSL に関する調査の話を書いた。 今回はそれの続き。 色々考えたんだけど、ドメインを取って、Let’s Encrypt を使うのと、無料DNSで格安SSLを使うのとで、どっちがいいかと考えると、金額的には変わらないし、同じくらいの金額でシンプルなドメイン名がとれるならと、結局、ドメインを取って無料SSLという、非常にオーソドックスな解決法に落ち着いた。 ドメイン名を買って、mydns に登録して、Let’s Encrypt で暗号化して今に至っている。 ドメインは某有名格安業者だが、dynamic dns の更新が Windows にしか対応していないので、DNS サーバは継続して、mydns を使うことにした。 Let’s Encrypt の更新も cron に登録したが、実際に更新されるのは 2ヶ月後になる。 サイト全体をSSL化することができたので、ついでに HTTP/2 にも対応した。 サーバーは Raspberry Pi だが、サクサク動いて、ちょっと感動的である。

twentyeleven

/* ここに独自の CSS を追加することができます。 詳しくは上のヘルプアイコンをクリックしてください。 */ /* @import url(‘https://fonts.googleapis.com/earlyaccess/mplus1p.css‘); font-family:’Mplus 1p’ */ @import url(‘https://fonts.googleapis.com/earlyaccess/sawarabigothic.css‘); @import url(‘https://fonts.googleapis.com/css?family=Architects+DaughterKalam:300Bitter‘); /* font-family: ‘Bitter’, font-family: ‘Architects Daughter’, cursive; font-family: ‘Kalam’, cursive; */ body { font-family: ‘Bitter’, ‘Sawarabi Gothic’ , ‘Hiragino Kaku Gothic ProN’, Meiryo, Helvetica, Arial, sans-serif; } pre { padding: 0em; } .entry-title { font-size: 22px; text-shadow: 2px 2px 6px #ccd; } .widget-title { font-size: 13px; } #site-title a{ font-size:36px; font-family: ‘Kalam’; text-shadow: 3px 3px 7px #aab; } #site-description { text-shadow: 1px 1px 3px #ccd; }

Raspberry Pi で node.js

Raspberry Pi で node.js 。 といっても、先日、Meteor 動かしたんだけど、重すぎだったので、もうちょっと軽い構成にしてみようと思った。 Meteor は内包された node.js を使う (ちょっと古いやつ) ので、個別に node.js は入っていなかった。 で、インストールするのだが、これは特に書くほどでもなくて、公式の Linux - armv7 用のバイナリがそのまま動く。 なので、基本的にダウンロード、展開して、パスを通すだけである。 Meteor は正直、重くて、使う気にならないレベルだったが、素の node.js ならば、問題なく動くようだ。 メモリ使用量も virtual は結構使うが、 real はそれほどでもないので、実用性はありそう。 いわゆる MEAN スタックも動くが、 MongoDBがちょっとメモリ食いかなと思う。 MEAN の フルスタック scaffold は、さすがに重いので、個別に Express.js, Angular.js, socket.io あたりを集めてくれば、軽い。 今は、Express.js, Vue.js, socket.io でリアクティブの勉強中。

MacBook Pro から Surface Book に

最近 Surface Book を買い増した。 MacBook Pro も別に捨てたわけではないので、タイトルは多少、刺激的(?)に書いたw MacBook Pro はだいぶ長く使っていて、2011年のモデル(MacBook Pro 15 inch early 2011)だったが、壊れずに使えていた。 古いとはいえCore i7だし、ドライブもSSDにしてあったので、修理もしながらだったが長く使うことができた。 Retinaになる前で、側面にI/Fがずらりと並ぶタイプ(Ethernet, Thunderbolt/1, FireWire 800とか…)なので、いざという時に便利だった。 もう6年も前のモデルだが、クリエイター達には需要があるらしく、まだ中古でも値が付くらしい。 Full HD の dot by dot とか、いろいろ接続したりとか、古いアプリを使わざるを得ない場合(映像系とか音楽系とか…)で非Retinaが必要だったり、確かにまだ需要はありそう。 手持ちの MacOS 環境として使えるだけ使おうかなと思っている。 で、Surface だが、Surface Pro 2 も使っていたので、実質は Mac からというよりも、Surface 同士のアップグレードに近かったりする。 Mac を使っていた理由は、OSX 以降の NeXT の流れを汲んだシステムが気に入っていて、本物の UNIX が GUI 環境ときれいに共存していたからなのであるが、最近は Windows でも、Git for Windows の bash や、ConsoleZ / ConEmu、Docker, Hyper-V あたりで十分な環境を作れるなと感じていたので、新しく買う機械は Surface Book にした次第である。 あと、Windows の嫌なところはフォントがショボいことだったが、鬼のように高解像度な環境だとビットマップフォントが使用されなくなり、Clear Typeのアラも見えなくなる。好みのフォントを一通り設定してしまえば、嫌な感じは無くなる。Windows マシンの中では、高解像度なマシンを選ぶのは必須条件として、Surface Book ということになった。 Surface Book は写真で見たりすると、グレーでぱっとしないが、実際に触ってみると、ざらっとしたマグネシウムのボディで、意外と高級感がある。ヒンジ部分のデザインが特徴的だが、個人的には嫌いじゃない。 ディスプレイ部分が外せて特大のタブレットとしても使えるし、Macと違って、ペンのサポートもある。 最近、趣味のプログラミング以外にも、多少、絵をかいてみたりするようになった。 昔の Bob Ross の絵画教室みたいな感じで風景を描いてみたりしている。 ツールは ArtRage を使っている。 Painter のスタッフがスピンアウトして作ったとか。 非常によくできていると思った。 Apple は Mac に関しては、タッチとかペンとかは、ものすごく消極的なのは一体何なんだろうと思う。 I/Fもごっそり削って、で、クリエイター向き、プロ向きをうたってるんだから笑わせる。 いったい何のプロ向きなんだろう。格好付けのプロ?

Raspberry Pi で Meteor

Raspberry Pi で Javascript / Node.js フレームワークの Meteor を動かす。 といっても、バイナリを用意してくれているプロジェクトがあるので、git clone するだけでインストールできる。 GitHub のプロジェクト 4commerce-technologies-AG/meteor の README.md に手順が書いてある。 このプロジェクトでバイナリが配布される前でも、ソースからビルドすれば動いたようだが、ビルドは1日掛かりになったとか。まあそんな感じはする。 基本的に

1
git clone --depth 1 https://github.com/4commerce-technologies-AG/meteor.git

して、PATHを通すだけ。 初回の実行に Rasberry Pi 3B で約20分掛かった。 他の遅い機種では厳しそう。 また create や、サンプルの起動にもそれぞれ5分くらい掛かる。 起動してしまえば、ちょっと重いが、普通に動作するように見えるので、省電力で上げっぱなしに出来ることを考えれば、使えなくはないかもしれない。 しかし、Rails とか Node.js とか、プロジェクトの実行時にライブラリを用意して、かつ、x86/x64 以外はビルドが入るようなやつだと、どうしても重いなあ~と思う。 起動時に MongoDB が Locale が認識できないというエラーが出る場合は、sudo raspi-config でロケールを en_US.UTF-8 に変更すると回避できる。

MySQL 5.5から MariaDB 10.0 へのアップグレードで、ログインできなくなる

MySQL 5.5 から MariaDB 10.0 へアップグレードする話。 MySQLからMariaDBは、データ本体、(データーベースの方の)ログファイルともに、そのまま移行できるようになっているようだ。 とはいえ、一応バックアップは採った。

1
mysqldump -u root -p --events --all-databases > mysqlbackup.out

あと、my.cnf のバックアップも採っておく。 あとは、お気楽にやってみる。。。

1
2
3
4
sudo apt-get remove mysql-server
sudo apt-get autoremove

sudo apt-get mariadb-server

MariaDB のインストール時に、画面が切り替わって、本当にアップグレードするか?と聞いてくるので、Yes と答えれば、完了。 のはずだったのだが、mysql コマンドでログインできない。 ネットで検索すると sudo すれば入れるとの情報があったが、何をやっても入れず、滝のように汗が出る。。。 結局、以下のような情報を見つけて、パスワードのリセットをし、無事に移行完了。 How to reset your MariaDB root password?

1
2
3
4
5
6
7
8
9
10
11
12
13

root# service mysql stop

root# mysqld_safe --skip-grant-tables &

root# mysql -u root

MariaDB [(none)]> use mysql;
MariaDB [(none)]> update user set password=PASSWORD("NEWPASSWORD") where User='root';
MariaDB > flush privileges;
MariaDB [(none)]> exit;

root# service mysql restart

root だけこの方法で変更したら、他のユーザーについては問題なかったようです。 久しぶりにビビりました。。。。

Raspberry Pi の ステータスをグラフ表示: rpgraph

Raspberry Pi で運用中のサーバの状態をグラフ表示しようと思った。 最初は、MRTG を入れてみたんだけど、SNMP で拾うのが手間だし、拾えても思ったような値じゃない場合ある。 Raspberry Pi のCPU温度センサーの値なんかも拾いたいので、結局スクリプトで拾うことにしたのだが、書いているうちに、SNMPじゃなくて全部、スクリプトで拾えばいいじゃん。 それに、別にMRTGじゃなくてもいいじゃん! と思えてきたので、ぱぱっと自作してみた。 CRONでシステム状況をファイルに保存して、html ファイルに加工。 出力は Google Charts ライブラリを使って、クライアントサイドで描画してしまえばいい。ということで、こんな感じのやつが出来た。 リアルタイムでのグラフはここ。 シェルスクリプトと、awk を使って、適当に。。。 需要があるかは分からないが、一応 GitHub で公開中。 https://github.com/sakisan28/rpgraph 初 GitHub 。お手柔らかに。。。

Raspberry Pi で プロジェクト管理

Raspberry Pi サーバに、スケジュール管理用の Web 画面を作ろうと思って、色々画策した。 最初は、Nextcloud (ownCloud からバージョンアップした) 上の Deck というアプリでやろうかと思ったが、あまりにシンプルすぎてやめた。 次に Redmine を入れてみたのだが。。。 Raspberry Pi ではちょっと重い感じがするし、個人で使うには機能や設定が多すぎて面倒な気がしてやめる。 でも、高機能は魅力だし、ガントチャートなんかも良くできていると思うので、またいつか戻ってくるかも。 で、Kanboard というのを入れてみることにした。 カンバン方式のプロジェクトマネージメントで、分かりやすいし、そこそこに日本語化もされている。 インストールは、PHPが動く環境が出来ていれば、基本的に展開して、仮想ディレクトリの設定をするだけである。 ちょうど Wordpress のインストールみたいな感じ。 動作が軽いし、画面もシンプルで気に入っている。 gogs との連携も出来るみたいなので、時間があったらやってみたい。

Raspberry Pi で Docker (Windows で Wifi 設定)

以前、やろうとしてやらなかったネタ。 Raspberry Pi には、専用の Docker 環境 Hypriot がある。 サイトを見ると、テロリスト風のちょっと悪趣味なサイトだが、モノ自体はまとも。 インストーラーは Windows / Mac / Linux に対応しているが、Windows の場合、インストーラで Wifi を設定できない。 どうしたものかと思っていたが、イメージ書き込み後に device-init.yaml を編集したらいけた。

1
2
3
4
5
6
7
8
9
# hostname for your HypriotOS device
hostname: black-pearl

# optional wireless network settings
wifi:
interfaces:
wlan0:
ssid: "SSIDをここに書く"
password: "パスワードをここに書く"

ファイル自体は最初からあるが、wifi: からのくだりはコメントアウトされているので、行頭の#を取るのをお忘れ無く。 で、使ってみた感想だが。。。 確かに Raspberry Pi に何かをインストールテストする際には使える。 しかし、メモリも少ないし、動作も重いので、あまり使えないな。。。という印象。 やっぱり、Intel NUC あたりに 8GB くらい載っけて、x64 の4コアくらいで動かしたいな。。。Docker は。 参考: https://github.com/hypriot/device-init

海外の格安SSL

認証が安いのであって、SSL が安いのではない。というツッコミはあるが、不正確だけど解りやすいのでこのタイトルにした。 結局 Let’s Encrypt はあきらめて、海外の格安認証業者で、認証してもらおうということになった。 調べたところ、Comodo が安く、そこそこの信頼性(大事件はあったけど、対処は悪くなかった)なので、 Comodo にすることにした。 国内でも扱っている業者はあるが、海外業者はもっと安いので、GOGETSSL という業者から買うことにした。 といっても、まずは、Comodo の90日間無料のものを購入し、様子見することに。 Domain Validation では、メールやHTTPなどの方法で認証できる。 HTTPで認証する場合は、特定のファイルがダウンロードできるようになり、そのファイルをHTTPでアクセスできるようにすることで認証される。 事前にブラウザでファイルが見られることを確認すれば、認証も余裕で通る。 無償期間が切れたら、Comodo の年間5ドル弱のやつを買おうかと思っている。