WEB業界にいる方々はともかく、そうでない方にとっては『WEBの役職?わかんね』ってなもんだと思いますが、基本的にWEBディレクターって人はサーバーを触ることはあまりありません。
そもそも、サーバーを専ら触るのはシステムエンジニア様だとか、バックエンドエンジニア様だとかです。そんなもんなのです。

でもね、田舎ですんでね、求められるわけですよ。

最近でもレンタルサーバー周りでは色々ありましたし、そうでなくてもVPS(バーチャル・プライベート・サーバ)借りようよ~とかって話にもなりますので、これはLinuxを触らなければならないだろう!と前々から思ってVirtualBoxにCentOS入れてはイジイジしてみたりしてたんですよね。

そういう経緯もあって、今回はLinuxやってみよう!のお話です。
基本的に底辺レベルの話だと思ってるので有識者の方はあまり読む価値ないと思います(;´Д`)

仮想環境にするか、実機を持つか。

今までは、自分のWindowsにVirtualBoxを入れて仮想環境を作っていましたが、この度__外付けハードディスク(のケース)が天に召されました__ので、いい機会だから実機でやってみようと思い立ったわけですが、そうじゃない 場合、仮想環境にするか実機にするか、という問題がまずあります。

互いのメリット/デメリットを考えて導入すべきなので、思いついた差をまとめておきます。
あくまで差分なので、デフォルトでこうって話ではありません。
(どちらでも学習が必要なこととかは記載してません。クライアント側のPCの電力代とか、同じだし。また、導入に関してはネットワークインストールとかはしないでごくごく普通の初心者がやることを考えてます。)

項目 仮想サーバー(VMWare / VirtualBox / etc…) 実機 VPS
知識コスト 仮想化ソフトの使い方 ハードウェアの知識 管理画面コンソールの習熟
金銭コスト(イニシャル) サーバー本体代 初期費用
金銭コスト(ランニング) 電気代・通信費 月額(or 年間)使用料
サーバーのスペック インストール元になる機体の性能による制限を受ける 任意 契約プランによる
OS 任意 任意 契約サーバーの提供するもの
導入にかかる時間 仮想化ソフトのインストール→OSのダウンロード・インストール OSダウンロード→インストール用メディア作成→OSインストール 契約
起動の制限 仮想化ソフトが起動している時に限る 独立 通常時は常に起動
ファイルの所在 仮想マシンのイメージファイル内 HDD等記録媒体 契約サーバー内
ファイルのやり取り (仮想)ネットワーク共有 ネットワーク共有・メモリ等のやり取り SFTP・SCPなど
システムのバックアップ 仮想化ソフトの機能としてのスナップショット 自力 コントロールパネル(契約サーバーに寄る)/ 自力

思い浮かんだのはこれぐらいでしょうか。
さて、どれが一番オトクです?
それはきっと”何がしたいか”によると思うので、では自分がこれを導入する目的は何だったのか再整理しておきます。

  • Linuxの操作に慣れたい
    • いわゆる、黒画面(CUI)
    • CentOSがいいけど別にそこは最優先ではない。
    • ついでにVIMにも慣れたい
  • 常時電源が投入されているのが望ましい
    • MBAなりAndroid機なりからファイル取るのにいちいちWindowsの母艦立ち上げておくのもなんだかなぁ…。
  • (最終的には)外部接続してファイルのやり取りがしたい。
    • なんせ外付けHDDが壊れた代わりなので。
    • 別にGUIである必要はない。
    • つまりSFTPで可。
  • (あわよくば)スニペットの管理もしたい。

色々遊んでみれるのは実機なんですけど、導入費用と維持費用が…。
費用はあまりかけたくないな〜と思ってたのです。
イニシャルもですが、常時起動させておきたいので消費電力が大きいマシンだと電気代もばかになりませんしね。

そこで、有識者に相談したりして、省電力・省スペースなRaspberryPiでサーバを立ててみることにしました。
ぶっちゃけ勤め先にはイントラサーバーとしてCentOSの機体がいるんですが、やっぱりそれは会社のものですしね。
いろんなディストリビューションがあるので一概にどうこう言えないんでしょうけれど、まぁ何でもやってみようってことで。

RaspberryPiって何よ?

一言で言うと、名刺ケースよりちょいと大きめなサイズのサーバーです。

RaspberryPi

本体はこんな感じ。(ケースの下だけつけてあります。)
言うまでもないですが、隣はサイズ比較用のタバコです。

RaspberryPi

で、ケースにおさめて配線するとこんな感じになります。 これで「こんぴぅた」なんですってよ!技術の進歩バンザイ!

僕は全部Amazonさんで揃えてしまいました。

コンセントとUSBの変換は以前から持ってたコレで。

ちなみに本体以外に必要な物は、OSを入れるSDカード(8GBでいいらしいですけど、32GB購入)、MicroUSB給電のケーブルと電源変換コネクタ。
環境によってはLANケーブルやらキーボード、マウス等入力機器、ディスプレイとHDMIケーブルも必要なので参考価格にしかなりませんけども、全部予備があってもいいような物なので、これを機会に揃えてしまってもいいかもしれません。
もちろん「ルータに潜ってDHCPの割り当て見てSSHでログインする」って方にはOSのカードと電源とLANがあればいい話でありますです、はい。
僕は超初心者でチキンなのでデュアルディスプレイにしてるWinの片側を割いてHDMIで繋いで入力機器もUSBにつっこんでやることにしましたが。

自分は目的がないと取り組めないタイプの人間なので、前述の目的に従ってコイツに何をさせるか明確にしておきます。
もちろん外付けHDDの代わりにしたいわけですが、セキュリティの問題とかもありますんでとりあえずはローカル内でファイルサーバーにすることを目的にします。ファイルサーバーにするには記憶領域が32GBではこころもとないので、今までWinにUSBでつながっていた外部HDDを共有させることにします。
MBA購入したこともあって、ネットワーク越しにファイルを置く所っていうのが欲しかったので。

OSの選定と設定

FedoraベースのPidoraやらDebianベースのRaspbianなどなど、OSのファイルはRaspberryPiの公式からダウンロード出来るので色々試してみました。
OSの書き込みとかはここらへんを参考にしました。

Raspberry Pi初心者のためのOS別セットアップガイド via lifehacker

で、落ち着いた先がArchLinux。
情報多いのはRaspbianなんですが、師匠である方が使ってらっさったので。
あ、勝手に師匠って言ってるだけですよ(そんなんばっか)

設定方法とかは今は端折ります。探せば出てくることなので。
初心者なりにやることは

  • IPの固定化
  • 外部HDDのマウント
  • ファイルサーバー(Samba)のインストールと設定
  • SSHはパスワード認証から鍵認証へ。

とかぐらいだと思います。詳細は 次回にメモ代わりにでもまとめようかな。

CUIでわからないなりに調べながら色々やっていくと、「このファイルはここにあるのね」とか「この機能の設定はここにあるのね。
こういう記述になってるのね」とかがわかってきて楽しいです。
VPSを触ったりすればそうでなくてもわかるんですが「壊しても大丈夫な環境かどうか」という点での精神的負担は段違いです。
僕は(たとえそれが仮想サーバーでも)人様と関わりのあるところで実験!というのは怖い人なので。

えぇ、単に怖がりなだけですよ。

Linuxに慣れる。

そりゃもう最初なんて頭がスポンジか豆腐にでもなりそうな感じなんですが、触っていってるうちにだんだんわかるようになってきます。
慣れってすごいね!っていうか学習しなかったら意味ないね!

viに慣れる。

viっていうのはエディタです。
ちょっと操作方法が独特な感じですが、CUIで設定を書き換えたりするにはエディタの操作に慣れる必要があります。
ちなみに、エディタ論争に参加するつもりは全然ないので、Emacsがいいって人はそれでいいと思いますw

単に僕はviを使おう!と思ったというだけ。
その背景に名古屋で世界の危機を救ってる方とかがいるのは言うまでもありません。ごめんなさい、身内ネタです。

さて、viに慣れると一言で言ってもやっぱり使い慣れた入力方法でキーを叩いてしまうのです。
矢印キーで動かしちゃうんですよね、カーソル…。
これはイカン。
そう強く感じました。
このままでは永遠にviには慣れない…。

そこで僕が取ったのが、普段使っているエディタもvi仕様にする!ということでした。
そうすりゃ慣れるでしょ。
もちろん、これは超絶忙しいときにやると誤動作を引き起こす原因を作りかねない諸刃の剣…ですが、落ち着いてる時くらいはこれでやってみよう、と。

メインのエディタ(Win)はEmEditorを使っていますので、viエミュレーションプラグインを入れます。
MacのメインエディタもSublimeText2なので同じように。

まぁ、通常使うエディタをVimにしろって話もあるかとは思うのですが、それはそれで不便なので(;´Д`)人

WEB業界の隅っこにいる人として。

最初の話に少し戻ってしまいますけども、デザイナーだからデザインやってればいい、コーダーだからコーディングだけやってればいい、ではダメな感じだと思うのですよ。
そりゃぁ、そこに特化してればいいと思いますが、予備知識としても、あるいは他職のチームメイトとのコミュニケーションのツールとしても役立つ知識だと思います。

「デザイナーは(何も言わなくても)こうしてくれよ」とかいう意見もあろうかとは思いますが、結局自分以外の誰かの手を借りて物を作ってるわけですから、そこはお互い様じゃないかなぁ。
正直、Linux触るようになるまでサーバー屋様の苦労なんて知りもしませんでした。
もちろん、彼らはそれが得意だから(あるいは好きだから)生業にしているのでしょうけれど、だから学習コストが減るかというとそういうわけでもありませんよね。
好きだからマイナス要素(時間や費用など)が気にならないというだけです。
仕事なので好きなことだけやってるわけにもいかないでしょうけれど、ベースにはそれがあるんじゃないですかね。

キレイ事にも聞こえますけど、要は歩み寄りなんだと思います。
その量の差はさして問題ではありません。伝える努力と受け入れる努力は必要だと思います。
お互いの仕事ですから、尊重しあってやっていければいいんじゃないかな(小並感)

そんなわけで、次回は「LinuxのCUIに慣れる+アプリケーションのインストール」になる予定です。
需要はないと思いますが自分の作業メモも兼ねてw

ではまた。