操作のセキュリティってーといまいちパッとしないけれど、更新履歴の管理の事です。更新履歴ってーと、何があるか、ざーっと上げると RCS CVS SVN GIT などなど。そして本書で取り上げているのはRCSとPuppet。調べてみると一番古いのがRCSのようですね。ってことでRCSを簡単に使ってみようと思います。
RCS
rcs_test.txt というテキストデータを作って色々やってみます。
$ mkdir RCS $ cd RCS $ vim rcs_test.txt $ cat rcs_test.txt いつまで続ける~? $ ls -l rcs_test.txt -rw-rw-r--. 1 take take 28 11月 1 19:26 2014 rcs_test.txt
ci というコマンドでチェックイン(登録)します。. だけの入力でコメント終了らしく sendmail みたい。
$ ci rcs_test.txt rcs_test.txt,v <-- rcs_test.txt enter description, terminated with single '.' or end of file: NOTE: This is NOT the log message! >> first >> . initial revision: 1.1 done
チェックインしたファイルはパーミッションが444となります。
編集したい時はチェックアウトしますが、-l オプションでロック。そうすると他のユーザーは編集ができないようにロックされるようです。
$ co -l rcs_test.txt,v rcs_test.txt,v --> rcs_test.txt revision 1.1 (locked) done
では再びチェックイン。変更を加えたのでリビジョンがver 1.2 になっています。
$ ci rcs_test.txt rcs_test.txt,v <-- rcs_test.txt new revision: 1.2; previous revision: 1.1 enter log message, terminated with single '.' or end of file: >> 更新 >> . done
ではここでチェックイン時、チェックアウト時の主なオプションを
ciのオプション
-f | 強制的にチェックインする |
-l | 指定したリビジョンがロックされる |
-r | 指定したリビジョンでチェックインする |
-u | 編集したファイルを残しておきたい時に使う |
coのオプション
-f | 強制的にチェックアウトする |
-l | ロックしてチェックアウトする |
-r | 指定したバージョン > 最新のリビジョンをチェックアウトする |
-u | 同じユーザーに限ってロック解除 |
幾つか試してみましょう
-f 強制チェックアウトすると、444でした。
$ co -f rcs_test.txt,v rcs_test.txt,v --> rcs_test.txt revision 1.2 done $ ls -l 合計 8 -r--r--r--. 1 take take 44 11月 1 19:53 2014 rcs_test.txt -r--r--r--. 1 take take 335 11月 1 19:44 2014 rcs_test.txt,v
-l の場合は644です。
$ co -l rcs_test.txt rcs_test.txt,v --> rcs_test.txt revision 1.2 (locked) done $ $ ls -l 合計 8 -rw-r--r--. 1 take take 44 11月 1 19:55 2014 rcs_test.txt -r--r--r--. 1 take take 345 11月 1 19:55 2014 rcs_test.txt,v
差分の確認。
$ rcsdiff -r rcs_test.txt =================================================================== RCS file: rcs_test.txt,v retrieving revision 1.3 diff -r1.3 rcs_test.txt $ rcsdiff -r1.2 rcs_test.txt =================================================================== RCS file: rcs_test.txt,v retrieving revision 1.2 diff -r1.2 rcs_test.txt 2a3 > いつまでもー $ rcsdiff -r1.1 rcs_test.txt =================================================================== RCS file: rcs_test.txt,v retrieving revision 1.1 diff -r1.1 rcs_test.txt 1a2,3 > 祝3周年。 > いつまでもー
RCSのオプション
-b リビジョン | 分岐を作ります。指定したリビジョンを分岐の枝とします。b木のbかな。 |
-i | 新しくRCSファイルを作成します。 |
-l リビジョン | 指定してリビジョンロックします。 |
-L | ファイルの所有者でもチェックインができなくなる。 |
-U | RCSファイルの所有者はロックしなくても、チェックイン可能になる。 |
チェックイン、チェックアウトを何度か繰り返しやってると、感じが掴めてきた。
こんなとこでいいかなと思えてくる。
目的は資格ではなくて勉強することなのだ!
このままPuppetに入るとちょっと長くなりそうなので、今回はこれで終了にします。