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
, :q
でvimを抜けます。
/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
, :q
でvimを抜ければ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サーバ設定のためのメモになってしまいます。