読者です 読者をやめる 読者になる 読者になる

orangeProse別館

orangeProse(本ブログ)の補助

VagrantでUbuntuサーバ/etckeeper(git, tig)/vim-nox

この記事をちまちまと書いているうちにVagrantCloudが発表され、Vagrantの新バージョン1.5.0がリリースされるという、なんともタイミングの悪い、すごい展開になってきました。

一度書いた記事を、1.5.0を使いながら書き換えていきたいと思ったのですが、とくに変更点はありません(1.5.0のバグのような、不安定性のような挙動を感じますが)。

あと、前回の記事もいろいろと書き換えたいです。


vagrantでUbuntuサーバをサクサク使い捨てできるようになったので、サーバの初期設定の練習に使います。

最低限これは最初にやっておきたい、というものを、順番に記事にしていきます。

「最低限」なら最初からその状態でBoxを作ればいいじゃんと思うかもしれませんが、一連の操作を身体に染み込ませるために、最初は作っては破棄、作っては破棄を繰り返したほうがいいと思います。

そのあとに、ChefとかのProvisioningツールの導入を考えましょう。

前回の記事で、openssh-serverがインストールされ、.sshにauthorized_keysが入って、その続きです。

Ubuntuのデフォルトエディタをvim-noxにする

Ubuntu Serverは、デフォルトでは、テキストエディタがnanoに設定されています。

使い方がよくわからないのでvimに変えます。

vim-noxはプレインストールvim-tinyの上位版です。

あと、ここからapt-getの代わりにフロントエンドaptitudeを使うことにします。

$ sudo aptitude update
$ echo $?
$ sudo aptitude dist-upgrade
$ echo $?
$ sudo aptitude install vim-nox
$ sudo update-alternatives --config editor

選択肢が表示されるので、vim.noxの番号を押してEnter。

etckeeperの導入

いろいろ設定したりパッケージを導入したりすると、/etc以下の設定ファイルが書き換わることになりますが、etckeeperでその差分を管理します。

バージョン管理にはgitを使い、そのフロントエンドとしてtigを使います。

$ sudo aptitude install etckeeper git tig

etckeeperを導入したら/etc/etckeeper/etckeeper.confを編集します:

$ sudo vi /etc/etckeeper/etckeeper.conf

# The VCS to use.
#VCS="hg"
VCS="git"
#VCS="bzr"
#VCS="darcs"

初期状態ではbzrがVCSに設定されていますが、これを上記のようにコメントアウトし、gitを有効にします(iで挿入モード)。Esc, :w, :qvimを抜けます。

/etc以下をgitで管理します:

$ sudo etckeeper init
$ sudo etckeeper commit

etckeeper initの前までの変更をコミットします。

さきにデフォルトのエディタをvim-noxに変えていれば、vimが開いてコメントを残す画面になります。iで挿入モードに入り、

first commit after installing etckeeper. after openssh-server dkms vim-nox git tig.

文章は分かればいいと思います(笑)。

esc, :w, :qvimを抜ければcommitが完了します。

変更履歴を見ます:

$ cd /etc
$ sudo tig

j, kあるいはカーソルキーでリスト内のハイライトを移動させてEnterすると、コミットログが表示されます。

qでログからリストに戻り、qでtigから抜けます。

特定のファイルの変更履歴を見たいときは、引数にフルパスを渡します:

$ sudo tig /etc/ssh/sshd_config

変更を取り消したい場合は:

$ sudo etckeeper vcs reset /etc/ssh/sshd_config

apt-get installのような操作をして/etc以下のファイルが変更されたときは、自動的にコミットされます(インストール時の画面を見ましょう)。

たとえばntpをインストールしてみます。

ntpで時刻同期

文字通り、時刻情報を取得して同期するパッケージです。

$ sudo aptitude install ntp

インストールが完了する表示の末尾に、etckeeperのコミットが表示されています。

$ service ntp status

でNTPデーモンのステータスを確認します。

ちなみにUbuntuサーバは、デーモン(サーバ的な=サービス・ソフトウェア)がインストールされたのならばつねに動かす、動かさないならアンインストールすればいい、という前提なので、インストールした時点で走っているはずです。

停止や再起動もserviceコマンドを使います(そのときはsudoが必要)。

$ ps -fe | grep ntp

でプロセスの存在を確認し、

$ ntpq -p

で同期先サーバと正常に同期しているかを確認します。remote欄(同期候補が複数表示される)の先頭に*マークが付いている同期サーバと正常に同期しています。

$ less /etc/ntp.conf

で設定ファイルをみると、pool.ntp.orgがデフォルトにNTPサーバになっているのがわかります。

$ cd /etc
$ sudo tig

で、いまのntpのインストールがコミットされていることがわかります。

Enterで詳細を見て(j, kで上下移動)、q, qで抜けます。


次回は「SSHポート変更」「IPアドレスの固定」あたりについてメモしたいと思います。

ただ、このふたつは、Vagrant環境ではかなり難しいので、一般的なUbuntuサーバ設定のためのメモになってしまいます。