気ままにインフラエンジニア

渋谷で働くインフラエンジニアの備忘録。 TwitterID: @nakashii_

WindowsでGit,Vim,Screen/tmuxを使う - エンジニアのためのDesktop Linux入門

新しい職場に入ってこちら、大量のサーバーを管理するための環境を構築することに精をだしています。
サーバーの管理のためにWindowsでいろいろなツールを使ってみた結果、VirtualBoxLinuxを動かして使う方法がいい感じになってきたので書き残しておきます。

こんな過去を持つ人におすすめ

  • ローカルでもLinuxコマンドに慣れよう!と思ってCygwinを入れたが結局使っていない
  • サーバー上のエディタと操作感を統一しよう!と思ってgVimを入れたが結局sakuraエディタを使っている
  • Git使えるエンジニアかっこいい!使ってみたい!と思ってGoogleに「Git Windows」と打ち込んだが、検索結果をしばらく眺めたあとそっと閉じた
  • Ruby/Pythonかっこいい!使ってみたい!と思ってGoogleに、以下省略
  • サーバーごとにSSHPuttyの設定も正直しんどい

※わたしです

スクリーンショット

f:id:oopsops:20120228190732p:image:h270
Firefox、Excel、その他諸々を開いたWindowsの上で、ターミナル(tmux)とkvmvirt-managerが動いている図(カオス)

Desktop-LinuxをWindowsで使う!

デスクトップ向けのUbuntu11.10やFedora16を使えば、Git,Vim,Screenなど便利なツール類がリポジトリの追加など面倒な作業なしにすぐ使えます。
これを、VirtualBoxのシームレスモードを利用してWindows上で使います。すごく便利です!

利用するツール

自分は以下のものを選びました。

VirtualBox
公式:
Downloads – Oracle VM VirtualBox

無料。GUIがシンプルでわかりやすい。シームレスモードが素敵。

Ubuntu 11.10
日本語Remix:Ubuntu 11.10 Desktop 日本語 Remix CD リリース | Ubuntu Japanese Team
公式:Download | Ubuntu
仕事で関わりのあるChefやらOpenStackと関連が深いのでチョイス。案ずるより使ってみるほうが簡単でした。
Linuxのディレクトリ構造の中に日本語があると気持ち悪い人は公式からDL。

Fedora 16
CentOS系の設定ファイルに馴染みが合ったほうがよい人はFedoraを。こちらも使ってみましたが、Gitやtmux、byobuなどひと通りのツールはUbuntuと同じように使えました。
Fedora Project - Fedora のデスクトップ版、形式、Spin を入手
(ダウンロードでDVD形式を選択)

VirtualBoxのインストールとやっておくべきこと

VirtualBoxのインストールはウィザード形式なので、特に迷うことはないと思います。
Oracle VM VirtualBoxを使う(前) − @IT
仮想化関連ソフト/VirtualBoxでUbuntuを動かそう - Windowsと暮らす
インストール後にやっておくべきことはとりあえず3つ。
1. [ファイル]->[環境設定]->[一般] で、仮想マシンの保存箇所を変える。
2. [ファイル]->[環境設定]->[入力] で、ホストキーを変える。
3. Linuxとデータ共有するためのフォルダを決めておく。
私はホストキーを左Altにして、C:\sharedフォルダを作成しておきました。
ホストキーを変えた理由は後述します。

仮想マシンの作成とLinuxのインストール

VirtualBox上の仮想マシンの作成はメニューの新規から行います。基本的に、デフォルトの選択肢ですべてOKです。気にするのはマシン名くらいで。
f:id:oopsops:20120228205904p:image:medium
オプションは後で変更できるので、さっさと起動してしまいます。
ドライブにダウンロードしたブートメディアを指定して、Linuxをインストールします。男は黙って最小インストール…と言わず、デフォルトのままで行きましょう。
f:id:oopsops:20120228210303p:image:medium

無事Linuxがインストールできたら、ターミナルの使い方だけチェックしておきます。
f:id:oopsops:20120228212217p:image:medium
Ubuntuの場合はダッシュボードからtermとか検索すれば出ますし、
Fedoraであれば[システムツール]->[端末]でOKです。

シームレスモードの設定(GuestAdditionsの導入)

無事Linuxが起動したら、GuestAdditionsを導入します。
1. Desktop-Linuxの場合は、Hostキー(変更した場合はAlt、デフォルトは右Ctrl)+Dを押すか、メニューからGuestAdditionsの項目を選ぶことでオートランが走ります。
f:id:oopsops:20120228211407p:image:medium
インストールが終われば、マウス統合とシームレスモードの完成です。
Hostキー+Lで、シームレスモードへの移行。
ゲストOSの操作中にHostキーを押すことで、ホストOS(Windows)への復帰ができます。

※左Altにホストキーを割り当ててあるので、ターミナルの操作中にAlt,Alt+TabでWindowsとLinuxをスムーズに行き来できます。
※うまく動かない場合、ゲストLinuxを一度再起動して、Vboxサービスの再起動あるいは再インストールをします。

あとはもう使ってみるだけ!

いろんなツールを体験してみます。
Fedoraでも同じパッケージ名で、yumに置き換えてインストールできます。

  • Git
# Git
sudo apt-get install git
# Git-svn
sudo apt-get install git-svn

Windowsでの導入にくらべると、あっさりすぎて涙が出そうです。
Linuxならナレッジにも事欠かないですね:)

  • ターミナル管理:Screen/tmux/byobu
# tmux
sudo apt-get install tmux
# byobu
sudo apt-get install byobu

とりあえず使ってみたい場合、tmuxをおすすめします。解説はこちらで。
Terminal Multiplexer(tmux)の紹介|サイバーエージェント 公式エンジニアブログ
カスタマイズの項目をコピペでOKです。
Ctrl+t,vで画面を分割したあと、Shift+矢印キーでペインを移動できます。

  • 複数ホストの管理:ClusterSSH,Parallel SSH,PDsh
# ClusterSSH
sudo apt-get install clusterssh
# pssh,pdsh
sudo apt-get install pssh pdsh
# ClusterSSHの例
cssh -l username host1 host2

f:id:oopsops:20120228215409p:image:medium
塗りつぶしたらわけわからなくなりました。ごめんなさい。

ClusterSSHは複数ホストで同時にコマンドを実行。ターミナルがずらりと並んでオペレーションできる光景はけっこう感動します。

  • 各種言語で書かれた便利ツール
# rubygems
sudo apt-get install ruby-dev rubygems
# Chef(構成管理ツール)
sudo gem install chef

# Python/easy_install
sudo apt-get install python python-dev python-setuptools
# Sphinx(ドキュメントビルダー)
sudo easy_install sphinx

このへんはおまけ。


おまけ Vbox共有フォルダの設定

仮想マシンの設定で、共有フォルダを作成します。
f:id:oopsops:20120228220813j:image:medium

sudo mkdir /shared
sudo mount -t vboxsf shared /shared

これで、Windowsとファイルを簡単に共有できます。
例えばこのフォルダ以下にgit cloneしておけば、既存のWindowsツールでそのまま編集したあと、gitコマンドでバージョン管理できたりします。


結論 - VirtualBoxとDesktop-Linuxは何がステキか

  • (再掲)デスクトップ向けのUbuntu11.10やFedora16を使えば、Git,Vim,Screenなど便利なツール類がリポジトリの追加など面倒な作業なしにすぐ使える。
  • 当然ですが既存のWindowsもそのまま使える。これ大事。
  • VirtualBoxのシームレスモードで、WindowsアプリのようにLinuxを扱える。
  • ホストWindowsと共有フォルダを作っておけば、そのフォルダを利用してWindowsでも作業が出来る。
  • 仮想マシンならスナップショットをとっておけば、新しいツールも試し放題!
  • SSH経由でターミナルを利用するのに比べ、GNOME3等の最新のXを利用するデスクトップはWindows7と比べても遜色ない。あと日本語(UTF-8)もばっちり対応済み。
  • VirtualBoxはそのまま、サーバーOSをテストする環境に。


重いなるかどうか気になる人へ…ターミナル作業がメインならメモリの割り当てが384MBとか256MBでも十分動いてくれます。Firefoxのメモリ消費量が500MBを超えるのも日常になった今は大した問題ではないはず。HDDイメージファイルもデフォルトの8GBあれば十分です。


最後に

だいぶ長くなりましたが、Windows上でGitほか各種ツールを使いたい人にも、諸々の理由で自分の自由にできるサーバーがない、もしくは会社のサーバーに自分用のツールを入れまくるのは気が引けてしまう繊細なエンジニアにもぜひお勧め。自宅で勉強に使うのもアリだと思います。

各種ツールや手順については今後も追記なり別途記事を起こしていきます。この記事が少しでも誰かの役に立てば幸いです。