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

【第9回】目指せLinuxマスター(1) ~sudoersの管理~

迷い森 Linux CentOS6 設定 sudoers

 皆さま,こんにちは. 迷子のエンリュです.

 今回は「目指せLinuxマスター」ということで,sudoersの管理をやっていきたいと思います.なんだかいきなり難しそうなことになってきました...

 やることは簡単です.今日の作業をざっくりまとめると,次のようになります.

  • wheelまたはsudoグループへのユーザーの追加
  • sudo権限を持たないユーザーの追加(比較用)
  • sudoers設定ファイルを編集

 今日の作業を終えると,今までsudo出来なかったユーザーがsudoで様々なシステムコマンドを使うことができます.その分rootユーザーにログインして作業することを減らせます.

 rootユーザーでうっかりシステムの重要な設定ファイルを消してしまった,なんてことはもう起こりません.sudoで権限を制御してあげるというのは,とても大切なことなのです.

 それでは早速始めていきましょう.よろしくお願いいたします.

ユーザーの追加とグループの設定

 まず,ユーザーとグループを設定していきます.今回sudoコマンドを使えるようになってほしいユーザーは「enryu」です.皆さんは普段使ってるメインのユーザーに置き換えて考えてください.この「enryu」を「wheel」グループに入れることで,sudoを使えるようにしていきます.

 それ以外のユーザーは,wheelメンバーではない一般ユーザとします.

 また,もう一つ「users」というグループに物理コンソールでログインしたときだけシャットダウンや再起動を行える権限を与えていきましょう.一般ユーザを,usersメンバーと非usersメンバーとに分けるのです.

 まとめると,今回の設定の検証には3つのユーザーを使っていきます.設定内容は次の表のようになります.

番号 名前 フルネーム 所属グループ
1 enryu Lost Enryu enryu, wheel, users
2 bob Bob Beck bob, users
3 alice Alice Atanasoff alice, guest-users

 では早速この通りに設定していきましょう.今回はCUIを使ってユーザーを追加していきます.わからないことがあったらこちらを参考にしてください.

Qiita:Linuxコマンド入門(3) ~ユーザー・グループの管理~
$ su -
# useradd bob -c "Bob Beck"
# useradd alice -c "Alice Atanasoff"
# passwd bob
# passwd alice
# groupadd guest-users
# usermod enryu -aG wheel,users
# usermod bob -aG users
# usermod alice -aG guest-users

 設定は次のように簡単に確認できます.

$ groups enryu bob alice

f:id:LostEnryu:20161021155449p:plain

 正しく設定できましたね.

sudoers設定ファイルの編集

 いよいよ本日の要,sudoers設定ファイルを編集していきます.設定ファイルは/etc/sudoersです.ターミナルを開いて確認してみましょう.

$ ls -l /etc/sudoers
-r--r-----. 1 root root …/etc/sudoers

 以前のアクセス権限の話は覚えているでしょうか(第6回)

 「owner」と「group」は「root」,そのアクセス権限はどちらも「r--」.root権限ですら読み込み許可だけで書き込みができません.

 /etc/sudoersは,非常に特殊な設定ファイルです.root権限で無理やり編集することはできなくはないのですが,文法などにミスがあると致命的なエラーにつながってしまいます.そこで,専用のコマンド「visudo」を使います.

 visudo/etc/sudoersに書き込みを行えるだけではなく,編集した内容が文法的に正しいかどうかも判断してくれます.

 例えば間違った文字が打ち込まれた場合,このようになります.

visudo: >>> /etc/sudoers: syntax error nea line ## <<<
What now?    # ここでEnterを押す
Options are:
  (e)dit sudoers file again
  e(x)it without saving changes to sudoers file
  (Q)uit and save changes to sudoers file (DANGER!)
What now?

 What now? と聞かれてShift+qを押さない限り,文法エラーを残してしまうことはありません.安心ですね.

viの使い方

 visudoコマンドを使うと,viエディタが立ち上がります.viエディタはコマンドモードと編集モードを切り替えながらCUIでファイル編集を行うエディタで,多くのLinuxマシンにデフォルトでインストールされています.

 しかし,一般的なGUIベースのテキストエディタとは操作方法が異なるため,少々慣れが必要です.viの基本的な使い方についてはこちらで説明しています.使いこなせばとても便利なコマンドがたくさんあります.

Qiita: 覚えておきたいviコマンド

 最悪覚えていなくてはならないコマンドは次の4つです.

コマンド 意味
i 編集モードに切り替え(文字の挿入)
Esc 編集モードからコマンドモードに切り替え
:q! 保存しないで終了
:wq 変更を保存して終了

 編集モードに入ったら,通常通りに編集できます.編集が終わったらEscでコマンドモードに戻り,:wq(保存して終了)でターミナルに戻りましょう.

visudoで設定変更

 では,心の準備はよろしいでしょうか.設定を変更します.なおこの設定はGUIでは行えません.もう,やるしかないのです.

 まずはバックアップを取りましょう.Linuxコマンドの「cp」を使ってコピーします.

 ターミナルでrootユーザに変更し,以下のようにします.

$ su -
# cp /etc/sudoers /etc/sudoers.bak

 続いてvisudoを実行します.

# visudo

f:id:LostEnryu:20161021155707p:plain

 表示されました.

wheelをsudoersに追加

 まずはwheelグループのメンバーをsudoersに追加します.

 編集するポイントまで移動しましょう.矢印キーで下に移動してもよいですが,折角のviなので文字列検索コマンドを実行してみましょう.コマンドモードで/wheelとタイプして,Enterキーを押しましょう.

f:id:LostEnryu:20161021155746p:plain

 色が反転して表示されているマスがカーソルです.見事「wheel」という文字列を探し当てました.それではその下の行の先頭に移動してみましょう.j0と入力してみてください.

 jが下に一行移動,0がその行の先頭に移動です.

 今カーソルは「#」の上にあるはずです.この「#」はコメントアウト,すなわちその行の無効化を表しています.これを外して行を有効にします.

 iで編集モードにしてから2回Deleteキーを押してもいいですが,ここは2xと入力しましょう.xが文字の削除,その前の2は文字数を表します.これでコメントアウトが外れました.

 これで,wheelグループに所属するユーザがsudoを行えるようになりました.

 設定ファイルが以下のようになったことを確認してください.

(省略)

## Allows people in group wheel to run all commands
%wheel    ALL=(ALL)        ALL

(省略)

shutdownをusersグループのメンバーに制限

 続いて,shutdownを行えるユーザやホストに制限を設けましょう.今度は/shutdownとして「shutdown」を検索します.

(省略)

## Allows members of the users group to shutdown this system
# %users        localhost=/sbin/shutdown -h now
    ↑この行を編集します↓
%users        localhost=SHUTDOWN
(省略)

 SHUTDOWNとはコマンドエイリアスのひとつです.コマンドエイリアスというのは,いくつかのコマンドをセットにしてまとめて呼ぶための仮の名前です.これもsudoersの中で定義されている必要があります.

 今度は逆向きに検索をかけてみましょう.コマンドモードで?Cmnd_Aliasと打ってみてください.次のような場所まで飛べたでしょうか.もし違う場所にいたら,nShift+nで検索結果を前後に移ることができます.

(省略)

## Drivers
# Cmnd_Alias    DRIVERS    /sbin/modprobe

# Defaults specification

(省略)

 では,Driversの下にShutdownを追加していきましょう.

(省略)

## Drivers
# Cmnd_Alias    DRIVERS    /sbin/modprobe

## Shutdown
Cmnd_Alias    SHUTDOWN   /sbin/shutdown, /sbin/init, /sbin/halt, /sbin/reboot, /sbin/poweroff

# Defaults specification

(省略)

 ここまで書けたらコマンドモードに戻り,:wqを入力してみましょう.エラーメッセージなしで終了できればOKです.visudoのエラーが出たら,eで編集に戻ってどこか間違えていないか確かめましょう.

再起動して設定のチェック

 sudoersの設定が終わったら,再起動して設定を反映させましょう.suコマンドでログインしなおすこともできます.再度ログインしたら,次のコマンドを打ってみてください.

$ sudo -l

f:id:LostEnryu:20161021155905p:plain

 末尾に表示されたのがこのアカウントのsudo権限で動かせるコマンドになります.無事enryuはsudoですべてのコマンドをroot権限で実行できるようになりました.他のユーザーについても確認してみましょう.Uオプションでユーザーを指定できます.

$ sudo -l -U bob
(省略)
User bob may run the following commands on this host:
    (root) /sbin/shutdown, /sbin/init, /sbin/halt, /sbin/reboot, /sbin/poweroff
$ sudo -l -U alice
Sorry, user alice may not run sudo on localhost.

 bobにはシャットダウンの権限が与えられ,aliceにはsudo権限なしという結果になりました.やったね.

usersでシャットダウン

 それでは,シャットダウン権限を与えられたusersメンバー「bob」にシャットダウンしてもらいましょう.

$ sudo su bob        # sudoを付けるとpasswordの入力の必要がない
$ sudo shutdown -h now

 これで今日の作業は完了です.少し長かったですかね.お疲れさまでした.

suって便利なコマンドだなあ

Previous | Top | Next

Prev: 【第8回】CentOSの歩き方 GNOME編(2) ~ユーザー・グループ管理~

Next: 【第10回】目指せLinuxマスター(2) ~権限の制御~

Index
Journey

【第8回】CentOSの歩き方 GNOME編(2) ~ユーザー・グループの管理~

迷い森 CentOS6 設定 ユーザー管理 GNOME

 皆さま,こんにちは. 迷子のエンリュです.

 前回はsudoersという設定ファイルの管理の前に仮想マシンのバックアップを取っておこうという話でした.

 今回はユーザを追加したり,ユーザをグループに入れたり,といったことをできるようにしておきましょう.

 sudoの設定を変更したときに,sudo権限を許可したユーザとそれ以外のユーザの挙動を比較出来た方が分かりやすいですからね.というわけで,今回はユーザー・グループの管理を行い,次回から,sudoersの管理,権限の制限の全2回に分けて行っていこうと思います.よろしくお願いいたします.

環境

ユーザーマネージャの起動

 まず,ユーザーをsudo権限用のグループに入れます.CentOSなどのRedHatLinuxではwheelUbuntuなどのDebianLinuxではsudoというグループになります.

 GNOMEでは,ユーザー・グループの設定はSystem > Administration > Users and Groupsから行います.

f:id:LostEnryu:20161021074327p:plain

 この設定にはroot権限が必要なため,パスワード入力ダイアログが出ます.rootのパスワードを入力しましょう.ユーザ―マネージャが起動します.

f:id:LostEnryu:20161021074349p:plain

ユーザを追加

 それでは,ユーザーを追加してみましょう.ここではユーザ「hanako」を追加してみます.ユーザマネージャの「Add User」をクリックしましょう.

 立ち上がった「Add New User」に以下のように入力していきます.

f:id:LostEnryu:20161021074405p:plain

 「OK」を押すと,このように追加されます.

f:id:LostEnryu:20161021074532p:plain

ユーザーの削除

 ユーザを消去するときはユーザを選んで「Delete」を押します.    確認のダイアログが出るので,「ホームディレクトリごと消しますか」という旨のチェックボックスにマークが入っていることを確認して「Yes」を押しましょう.とても簡単ですね.

グループの追加

 次はグループを作成してみましょう.

 「Add Group」を押して,グループ名を入力します.ここでは「labo」としました.

f:id:LostEnryu:20161021074608p:plain

 「OK」を押すとグループが追加されます.

グループの削除

 グループの削除は,グループを選んで「Delete」ボタンです.

ユーザーをグループに追加

 ユーザーをグループに追加する方法は二つあります.ユーザーのプロパティから所属するグループを指定する方法と,グループのプロパティから所属するユーザーを指定する方法です.両方やってみましょう.

ユーザーのプロパティからグループに追加

 Usersタブを開きます.追加したいユーザをダブルクリックするか,ユーザを選んで上の「Properties」 をクリックすると,「User Properties」が表示されます.

f:id:LostEnryu:20161021074833p:plain

 Groupsタブに現在登録されているグループがすべて表示されています.左のチェックボックスがマークされているものが,現在所属しているグループです.ユーザ「enryu」は現在グループ「enryu」のみに所属していることが分かります.一番下までスクロールすると「wheel」というグループがあるので,チェックボックスにマークしましょう.

 「OK」を押せば追加完了です.

グループのプロパティからユーザーを追加

 今度はGroupsタブからグループをダブルクリックするか,グループを選んで「Properties」をクリックしてください.

f:id:LostEnryu:20161021074717p:plain

 「Group Properties」が開いたら,「Group Users」タブから追加したいユーザーを選び,チェックボックスにマークしていきます.ここでは「enryu」と「hanako」を探して追加します.「OK」ボタンを押すと,「Group Members」の欄に「enryu, hanako」と表示されました.

 ここで,再びUsersタブに戻り,どちらかの「User Properties」を開いてGroupsタブを見てみましょう.「labo」グループのチェックが増えているはずです.

グループからユーザーを削除

 削除も追加と同じです.プロパティのチェックボックスを外せばユーザーをグループから削除することができます.ユーザー,グループのどちらのプロパティでも構いません.

 もちろん,以上の操作はCUIからでも行うことができます.アカウント操作に関するLinuxコマンドはこちらにまとめていますので,練習してみてください.

Qiita: Linuxコマンド入門(3) ~ユーザー・グループの管理~

GUIの設定は簡単ですね

Previous | Top | Next

Prev: 【第7回】VMwareを使いこなせ(1) ~擬似スナップショット~

Next: 【第9回】目指せLinuxマスター(1) ~sudoersの管理~

Index
Journey

【第7回】VMwareを使いこなせ(1) ~擬似スナップショット~

迷い森 仮想化 VMware スナップショット

 皆さま,こんにちは. 迷子のエンリュです.

 今回は,VMware仮想マシンのバックアップを撮ったり前の時点に状態を戻したりする方法を実践していきます.仮想マシンの状態を保存したり復元したりする機能はスナップショットと呼ばれます.本来無料版ではスナップショット機能を利用できないVMwareで,まるでスナップショットを撮るような今回の手法を,擬似スナップショットと名付けちゃおうと思います.

 それでは早速やっていきましょう.よろしくお願いいたします.

### 仮想マシンのバックアップ

 まず行っていくのは仮想マシンの保存,すなわち擬似スナップショットの保存です.もしシステムに復旧不可能な変更を加えてしまっても,保存したマシンの状態から復元することができる,ということです.

 その方法はいたってシンプルです.仮想マシンのデータが入っているフォルダを丸ごとコピーしてしまおう!というものです.もちろん,サイズはかなり大きいです.本来のスナップショットは差分を取っていくので,省データな分たくさん保存しておくことができますが,こちらは何とも高燃費です.せいぜい1つ2つどうしても,というものを残せるくらいのものです.それでもバックアップがないよりはましです.また1からインストールするなんて,したくないですからね.

 この方法では,無駄なスナップショットは極力減らしていくことが大切になります.仮想マシンに変更を加え,新たなバックアップを作ったら,古いものはどんどん消していってしまいましょう.

CentOS 6.8のコピー

 それでは,簡単な初期設定を行った現在の仮想マシンのコピーを作成していきます.仮想マシンを作成したときに入力した"...\CentOS 6.8"フォルダのあるパスを開き,通常のフォルダのようにコピーしてしまいましょう.コピー方法はご自分のホストOSの操作方法で行ってください.コピーしたらフォルダ名をバックアップっぽい名前に変更しましょう.「CentOS 6.8 backup1」や「CentOS 6.8 2016-10-20」など,分かりやすいものなら何でもいいです.

コピーした仮想マシンの名前を変更

 コピーした仮想マシンは,そのままではVMwareで扱うことはできません.まずはライブラリに追加することが必要になります.VMware Playerを起動し,ホーム > 仮想マシンを開くをクリックします.先ほどコピーしたフォルダの中にCentOS 6.8.vmxと書かれたファイルがあるので,これを選びます.vmxファイル仮想マシンの設定を記述するファイルです.

f:id:LostEnryu:20161021072304p:plain

 開くとVMwareのトップ画面に「CentOS 6.8」がもう一つ追加されます.これではコピー元の仮想マシンと区別がつきません.こちらも名前を変更しましょう.

 CentOS 6.8 > 仮想マシンの設定をクリックします.仮想マシン設定ウィンドウが開いたら,オプションタブをクリック.

f:id:LostEnryu:20161021072335p:plain

 まず,ワーキングディレクトリがコピー先のフォルダ「...\CentOS 6.8 2016-10-20」になっていることを確認します.これがコピー元になっていた場合は「キャンセル」を押してもう一つの「CentOS 6.8」の設定を開きなおしましょう.

 仮想マシン名を「CentOS 6.8 2016-10-20」に変更して「OK」を押します.これで区別がつかなくなることはありません.

 また,仮想マシンの名前は先ほど開いた「vmxファイル」を書き換えることでも変更できます.「CentOS 6.8.vmx」のある場所を開いたら,プログラムを指定してファイルを開きます.開くプログラムはメモ帳などのテキストエディタでいいです.私はサクラエディタを愛用しているので,ここからの画面はサクラエディタのものになります.

f:id:LostEnryu:20161021072429p:plain

 名前をGUIで変更してからvmxファイルを見ると,43行目(環境によって違いあり)に「displayName」という変数があります.これがVMwareのトップ画面で表示される仮想マシンの名前です.これを直接編集することでも名前を変更できます.

コピーした仮想マシンを開く

 それではコピーした仮想マシンを起動してみましょう.すると最初にメッセージダイアログが出てきます.

f:id:LostEnryu:20161021072501p:plain

 ネットワークに接続するときのMACアドレスなどを振りなおすなど,いろいろ設定が必要になるので,コピーした場合はVMwareに必要な変更を行ってもらうことができます.「コピーしました」をクリックしましょう.

 あとはいつものように起動して仮想マシンが立ち上がります.今回はこちらのマシンには書き込みを行わないので,このままシャットダウンしましょう.

バックアップマシンの復元

 バックアップを復元するときは,今までの操作と逆にバックアップしたものの名前を元に戻していきます.まずVMwareのトップ画面でコピー元の仮想マシンを右クリックします.すると,下の方に「ライブラリから削除」と「ディスクから削除」の二つがあります.「ライブラリから削除」は,トップ画面には表示されなくなりますがデータの入ったフォルダは残るということです.バックアップを復元するときは「ディスクから削除」で完全に消してしまいましょう.

 次にバックアップフォルダの名前を元に戻し,その中のvmxファイルをテキストエディタで開いて「displayName」を元に戻します.

 これでバックアップの復元は完了です.

 もちろんこのバックアップを残しておいて,コピーして復元してもいいです.同様に名前を変更し,起動時に「コピーしました」をクリックしましょう.

仮想マシンへの変更のキャンセル

 バックアップマシンをコピーしてバックアップをとるのは,いざというときのための処置でした.今度は,変更をしないことが確定している場合に変更をキャンセルする方法をお教えしましょう.これは,仮想マシンを起動する前にディスクへの書き込みをしない設定を追加してしまう方法です.もちろん,反映したい変更をした場合も保存されないので,変更したい場合はこの設定をキャンセルする必要があります.

 仮想マシンの設定ファイル「CentOS 6.8.vmx」をテキストエディタで開きます.「ide0:0.fileName = "CentOS 6.8.vmdk"」または「scsi0:0.fileName = "CentOS 6.8.vmdk"」という記述を探しましょう.数字などは環境によって異なる場合があります.大事なのは"CentOS 6.8.vmdk"の方です.vmdkはVMwareの仮想ディスクファイルです.すなわち,その前についている「ide0:0」「scsi0:0」が仮想マシンでのHDDを表す変数だということです.

f:id:LostEnryu:20161021072602p:plain

 次に,ハードディスクの設定を追加していきます.ここでは「scsi0:0」の場合で説明していきます.先ほど見つけた「scsi:0.0」の下に,以下の行を追加しましょう.

scsi0:0.mode = "independent-nonpersistent"

f:id:LostEnryu:20161021072637p:plain

 この設定をすると仮想マシンnon-persistentモードで起動するようになります.仮想マシンの変更はREDOディスクに書き込まれ,VMDKファイルには書き込まれなくなります.REDOディスクは再起動やサスペンドでは残りますが,シャットダウンをすると消去されます.よって,シャットダウンをすると仮想マシンに行った変更がすべてキャンセルされるのです.

 例えばアプリケーションの動作確認を行う場合などは,このnon-persistentモードで十分でしょう.また,サーバとして動かすときなどもファイルへの書き込みなどは行いません.non-persistentモードの方が動作が早いらしいので,この設定が推奨されることもあるようです.

VMwareのチューニング7ポイント

non-persistentモード×共有フォルダ

 non-persistentモードはファイルへの書き込みができません.よってそのままでは普段から使うことはできません.しかし,VMwareには共有フォルダという機能があります.共有フォルダ設定でゲストOSとホストOSのフォルダを共有させることで,ゲストOSからホストOSのフォルダにアクセスできるようになります.

 普段のプログラミングなど,仮想マシンの設定は変えずにファイルを編集していくだけなら,共有フォルダ内で作業を行えばいいのです.この演習ではこれを活用していきたいと思います.

 環境構築のためにパッケージをインストールしたり,ゲストOSの設定を変更したりすることはできませんので注意してください.

 共有フォルダ設定に関してはまた後日記事にいたします.楽しみにしていてください.

NHMによるスナップショット機能の追加(Windows限定)

 さて,これまで説明してきたものは,スナップショット機能と同様に以前の状態を復元することを目的とした,擬似スナップショット機能の説明でした.しかし,少し作業が面倒くさいのが難点です.

 ところが,「NHM」というソフトウェアを使えば,もっと簡単にスナップショット機能を実現することができるのです.残念ながらこれはWindows限定のソフトウェアなのですが,新規スナップショットの作成や変更の適用が簡単な操作で実現でき,非常に便利です.

 ここでは記事にしませんが,Windowsの方は下の記事を参考にして導入してみてもよいでしょう.

「NHM」VMware Playerを使っていてもスナップショットを作成出来るソフトウェア!

次回

 それではバックアップも取ったところで,次回はいよいよsudoersの管理をやっていきたいところですが,その前にユーザーやグループの管理をやっていきたいと思います.

 今回はここまでです.ありがとうございました.

 次回以降設定が反映されないことのないよう,忘れないうちに「CentOS 6.8」のnon-persistentモードは解除しておいてください.

 また次回もよろしくお願いいたします.

Linuxコマンドのファイル操作編,書きました

Qiita:Linuxコマンド入門(2) ~ファイル操作~
Previous | Top | Next

Prev: 【第6回】Linuxコマンド入門(1)

Next: 【第8回】CentOSの歩き方 GNOME編(2) ~ユーザー・グループの管理~

Index
Journey

【第6回】Linuxコマンド入門(1)

迷い森 CentOS6 Linux Linuxコマンド

 皆さま,こんにちは. 迷子のエンリュです.

 今日は,CentOSGNOMEターミナルを使って早速Linuxコマンドの練習をしていきたいと思います.CUIでひたすら文字を打ちコンピュータを動かす.これこそまさにハッカーへの道のりの第一歩と言えるでしょう.

 ただ漠然と練習しようというだけでは,何からやろうかわからなくなってしまいますので,今回はディレクトリ操作コマンドを中心に演習していこうと思います.また,CUIベースのシャットダウンや再起動の方法についてもお教えいたします.今回扱うコマンドは以下の通りです.

  • ディレクトリ操作コマンド

    • pwd
    • ls
    • cd
    • pushd
    • popd
    • mkdir
    • rmdir
  • シャットダウンコマンド

 それではよろしくお願いいたします.

環境

  • Cent OS 6.8

カレントディレクトリの表示

 ディレクトというのは,コンピュータのファイルシステムの「場所」を表す概念で,ファイルを格納するものです.フォルダのようなものと考えてよいでしょう.ディレクトリは階層構造を作っており,これによってファイルの場所を一意に表現します.

pwdコマンド

 今いる場所,すなわち現在のディレクトリのことをカレントディレクトといいます.pwdコマンドは"print working directory"という意味で,カレントディレクトリを表示します.

$ pwd

 なお,$マークはコマンドラインの入力を意味します.ターミナルにはすでに$が表示されていると思います.$ pwdと書いてあるときはそこに「pwd」と入力してEnterを押してください.  作業中に今いる場所が分からなくなったら,pwdコマンドで調べましょう.

f:id:LostEnryu:20161017224110p:plain

ディレクトリ内の一覧表示

ls コマンド(1)

 lsコマンドは"list"の略で,ディレクトリの中身を一覧表示します.lsには様々なコマンドオプションが用意されています.

 $ ls
 $ ls -a
 $ ls -l
 $ ls -al

ls -aは普段は表示されないドットファイル,ドットディレクトリも表示します.

ls -lはファイルの詳細情報を併せて表示します.  二つのコマンドオプションを組み合わせることもできます.

f:id:LostEnryu:20161017224208p:plain f:id:LostEnryu:20161017224223p:plain

おまけ:ファイルの詳細情報

 ls -lで表示されるファイルの詳細情報の一部を切り取ってみましょう.

$ ls -l
-rw-r--r--.  1 enryu enryu  124 May 11 08:21 .bashrc
drwxr-xr-x.  2 enryu enryu 4096 Oct 16 02:00 Desktop

 これらの文字はなにを意味しているかというと,左から順に

 を表しています.

 パーミッションは10文字のアルファベットからなります.最初のdはディレクトリかどうかを表します.残りの9文字は,誰にどの操作を許可するかというアクセス権を表します.「owner/group/other」の順で並んでおり,「r」が「読み込み権限/ディレクトリの一覧権限」,「w」が「書き込み権限/ディレクトリの作成権限」,「x」が「実行権限/ディレクトリの侵入権限」を表します.

 ls -lで表示される書式を「long listing format」といいます.

 パーミッションの設定方法などはまた今度やります.少々ややこしいかもしれませんが,ファイルの管理には欠かせない知識です.

ls コマンド(2)

 ls コマンドは,引数にディレクトリ名を入力することで,任意のディレクトリの一覧を表示することができます.例えば次のような使い方があります.

$ ls -a Desktop
$ ls /
$ ls /usr/bin

f:id:LostEnryu:20161017225421p:plain

ディレクトリを表す記号

 いくつかのディレクトリには記号で表されるものがあります.少しまとめてみましょう.

記号 名前 説明
. カレントディレクト 現在のディレクト
.. ディレクト ひとつ上の階層のディレクト
~ ホームディレクト ログインしたときに最初にいるディレクト
/ ルートディレクト 一番上のディレクト

 親ディレクトリとは反対に,一つ下のディレクトリをサブディレクトといいます.ルートディレクトリの下にあるすべてのディレクトリをサブディレクトリということもあります.

ディレクトリの移動

cd コマンド

 cd コマンドは"change directory"の意味で,指定したディレクトリに移動します.ディレクトリの指定には,先ほどのディレクトリを表す記号を使うことができます.ただし,パーミッションの「x」がないディレクトリには入れないので注意しましょう.

 ファイルやディレクトリ名を入力するとき,途中まで入力してTabキーを押すと補完してくれます.また,候補がたくさんあるときは候補を表示してくれます.lsコマンドやcdコマンドを使うときに試してみましょう.

$ cd ..
$ ls
$ cd ./enryu/Documents/
$ pwd
$ cd /
$ ls -g
$ cd /root
$ cd ~
$ pwd

f:id:LostEnryu:20161019100646p:plain

相対パス絶対パス

 ../../Documents/fooといったディレクトリの指定は,カレントディレクトリからの相対的な場所を辿っていきます.これを相対パスといいます.一方/home/enryu/Desktopのような指定方法はルートディレクトリから辿ります.カレントディレクトリに関わらず絶対位置を指定するので絶対パスといいます.

pushd コマンドとpopdコマンド

 pushd, popd コマンドはそれぞれ"push directory", "pop directory"の意味です.push/popはスタックというメモリ方式に対する操作の用語ですが,詳しくはまた後日取り扱います.pushdはカレントディレクトリを記憶したまま指定したディレクトリに移動し,popdは最後に記憶したディレクトリから順番に戻ります.記憶したディレクトリはdirsコマンドで見られます.

$ pwd
$ pushd Documents/ # ~を記憶して~/Documentsに移動
$ pushd ../Downloads/ # Documentsを記憶してDownloadsに移動
$ pushd -n ../Desktop/ # nオプションで移動しないでDesktopを記憶
$ pushd +1 # カレントディレクトリを末尾に加えて1番のディレクトリに移動
$ pushd -0 # 末尾のディレクトリに移動してカレントディレクトリを先頭に
$ popd # 先頭のディレクトリに移動
$ popd +2 # 移動しないで2番目のディレクトリを記憶から削除

f:id:LostEnryu:20161019100716p:plain

ディレクトリの作成・削除

mkdir コマンド

 mkdir コマンドは"make directory"の意味で,ディレクトリを作成します.  

$ mkdir sample            # sampleディレクトリを作成します
$ mkdir -v sample/subdir  # vオプションで詳細を表示します.
$ mkdir -v sample2/subdir   # 親ディレクトリが存在しないとエラーになります.
$ mkdir -vp sample2/subdir   # pオプションを付ければ親も一緒に作成します.
$ ls sample sample2    # まとめて二つのディレクトリの一覧を表示

f:id:LostEnryu:20161017225607p:plain

rmdirコマンド

 rmdir は"remove directory"の意味で,空のディレクトリを削除します.中身のあるディレクトリは削除できません.中身ごとディレクトリを消したい場合は,rm -r *directory*とします.

$ rmdir sample   # エラーになります
$ rmdir sample/subdir
$ rmdir sample
$ rm -r sample2    # 一度に消したいときはrmコマンドを使います

CUIベースの再起動・シャットダウン

 さて,ここまで一気にやってきましたがどうでしょう?こんなにいきなりたくさん覚えられませんよね.

 Linuxコマンドはひとつの言語です.いきなりすべて覚えるなんて無理でしょう.使いながら覚えていけばいいのです.逆に言えば,たくさん使えば使っただけ慣れていくものです.今日は,ああこんなものか,と捉えてもらえればそれでいいのです.

 最後に,CUIからコマンドでCentOSをシャットダウンしてみましょう.

shutdown, halt, rebootコマンド

 shutdown コマンドはシステムの再起動やシャットダウンするときに用います.オプションでシャットダウン時の挙動を設定することができます.halt, rebootは,オプション付きのshutdownコマンドと同じ働きをします.

システムの再起動をするとき
$ shutdown -r now または $ reboot

システムのシャットダウンをするとき
$ shutdown -h now または $ halt

root権限での実行

 また,設定で一般ユーザ権限ではコマンドからシャットダウン,再起動できない場合があります.そういうときは,

$ sudo shutdown -h now
または
$ su -
# shutdown -h now

 のようにします.sudoは"super user do", suは"switch user"を表し,どちらもroot権限としてコマンドを実行するときに用います.root権限とは,システムを管理する権限だと思ってください.

 デフォルトでは,一般ユーザはsudoが使えない代わりにroot権限なしでもhaltによるシャットダウンが行えたかと思います.これはセキュリティの観点から見るとあまり喜ばしいことではありません.sudoやrootなどシステムのセキュリティに関する設定を変更する必要があります.

 しかし,root権限はシステムの設定に係る重要なファイルを書き換えたり削除したりできるため,ちょっとしたミスでシステムの起動ができなくなるなど一大事になりかねません.そこで,次回はVMware仮想マシンのバックアップを取る裏ワザをお教えしようと思います.

Virtual Boxならスナップショットが取れるんですけどね...

 ディレクトリ操作コマンドについてはこちらでもまとめています.

Previous | Top | Next

Prev: 【第5回】CentOSの歩き方 GNOME編(1)

Next: 【第7回】VMwareを使いこなせ ~擬似スナップショット~

Index
Journey

【第5回】CentOSの歩き方 GNOME編(1)

迷い森 CentOS6 GNOME 設定

 皆さま,こんにちは. 迷子のエンリュです.

 今回はCentOS 6.8GNOMEデスクトップかGUIで操作する方法について書いていきます.

 GUIとはGraphical User Interfaceの略で,GNOMEのように画面を見ながらマウスやキーボードを使って視覚的に操作するユーザーインターフェースのことです.これに対してCUI|Character-based User Interfaceは,コンピュータの状態がすべてコンソール上の文字で表示され,ユーザーもキーボードを使ってコマンドラインから文字で操作を行うユーザーインターフェースです.Linuxの設定はCUIで行うことが多いのですが,GUIの方が直観的でわかりやすいため,まずはこちらからやっていこうと思います.

 今回行うのは以下の項目です.

  • タイムゾーン,時刻の設定
  • 画面解像度の設定
  • キーボードの種類の設定
  • キーボードショートカットの設定
    • ターミナルの起動
  • GUIベースのシャットダウン

 それではよろしくお願いいたします.

タイムゾーン,時刻の設定

ロケーションの設定

 まずは,ロケーションを設定していきます.仮想マシンを起動し,デスクトップにログインしたら,右上の時刻表示をクリックします.

f:id:LostEnryu:20161017044158p:plain

 すると,カレンダーと登録されている地点が表示されます.Locationsの右のEditボタンを押します.

f:id:LostEnryu:20161017044215p:plain

 Locationsタブで地点を登録していきます.Addボタンで新しい地点を追加しましょう.

f:id:LostEnryu:20161017044248p:plain

 Location Nameの欄に「Tokyo」と入力すると候補が出てきます.「Tokyo, Japan」を選びます.逆に「Japan」と入力すると,日本国内の都市がいくつか候補に挙がります.自分のいる地点に近いところを選びましょう.

f:id:LostEnryu:20161017044313p:plain

 地点を選ぶと,それに合わせたタイムゾーンや緯度経度が自動で入力されます.これでよければOKを押しましょう.

f:id:LostEnryu:20161017044327p:plain

 これで新たな地点が登録されました.次にTokyoにカーソルを合わせると出てくるSet...をクリックします.すると,rootのパスワードの入力が求められます.入力してAuthenticateを押せば,Tokyoのタイムゾーンがシステムのタイムゾーンとして設定されます.これでタイムゾーンの設定は完了です.

 Clock PreferenceのCloseを押すと,時刻表示が更新され,GMTからJSTに変更されます.

時刻の設定

 時刻がずれている場合は,「Clock Preference」のTime Settingsから時刻を設定します.

f:id:LostEnryu:20161017044353p:plain

 Timeの数字を調整してSet System Timeを押します.rootのパスワードを入力すると,時刻が更新されます.

 以上で時刻の設定は終わりです. 

画面解像度の設定

 画面解像度とは,ゲストOSの画面のサイズのことをいいます.VMwareのウィンドウがゲストOSの画面より小さいと,画面をスクロールするために毎回Ctrl+Altで制御をホストOSに戻す必要があり,何かと不便です.

 VMware Toolsがインストールされていれば,再起動した時点でウィンドウサイズにあった画面解像度に自動的に設定され,ウィンドウサイズが変わるたびに画面解像度も併せてくれるのですが,手動で解像度を変更する方法も知っておく必要があります.

 GNOMEの画面の設定は,上のメニューバーのSystem > Preferences > Displayから行っていきます.ヒントにChange screen resolutionと表示されています.

f:id:LostEnryu:20161017032143p:plain

 クリックすると,「Display Preferences」画面が表示されます.

f:id:LostEnryu:20161017032156p:plain

 Resolutionをクリックして解像度を変更します.

f:id:LostEnryu:20161017032224p:plain

 Applyボタンを押すと解像度が変更され,これでいいかの確認ダイアログが出ます.

f:id:LostEnryu:20161017032237p:plain

 ここでKeep This Configurationを押せば,変更は完了です.今回はVMware Tools の自動設定を利用しているので,Restore Previous Configurationで元に戻しましょう.

 これで画像解像度の設定は終わりです.Closeで設定画面を終了してください.

キーボードの種類の設定

 次はキーボードの種類を変更します.CentOSでは初期設定でUSキーボードが選択されています.日本製のキーボードに描かれているキー配置は日本語キーボードのものです.日本語キーボードとUSキーボードは記号の配置が異なるため,そのままだと非常にややこしくなります.

f:id:LostEnryu:20161017032258p:plain
(画像:【win8】USキーボードで日本語入力環境を整える)

 USキーボードしか使えないときもあるので,USキーボード配列を覚えておくのも一つの手ですが,普段使うにはやはりキーの印字と食い違うというのは不便なものです.これも設定で変えることができます.

 先ほどと同様に,System > Preferences > Keyboardをクリックします.

f:id:LostEnryu:20161017032321p:plain

f:id:LostEnryu:20161017032338p:plain

 「Keyboard Preferences」が起動したら,Layoutsタブを選び,「Layout」一覧に日本語キーボード「Japanese」を加えます.下のAddボタンをクリックします.

f:id:LostEnryu:20161017032351p:plain

 By CountryタブのCountryからJapanを選びます.VariantsJapaneseと表示されていることを確認します.ここで「かなキーボード」なども選択できます.

 Japaneseが選択出来たら,右下のAddボタンを押して前の画面に戻ります.English (US)の下にJapaneseが表示されていれば成功です.

 あとは設定画面をCloseしてください.これでキーボード配列の設定は完了です.

キーボードショートカットの設定

 引き続きキーボードの設定を行っていきます.今度はショートカットキーの設定です.GUIベースで操作しているとはいえ,LinuxではしばしばCUIを使うことがあります.GUIにおいてCUIを使いたいときには,端末コンソールターミナルなどと呼ばれるアプリケーションを使います.

 UbuntuなどではCtrl+Alt+tというショートカットで端末を起動することができます.このショートカットは便利なので,CentOSでも設定していこうと思います.

 System > Preferences > Keyboard Shortcutsを開きます.

f:id:LostEnryu:20161017032417p:plain

f:id:LostEnryu:20161017032438p:plain

 たくさんショートカットが並んでいます.時々この設定を見て使えそうなものを覚えておくといいですね.

 Soundは折りたたんでDesktopを展開,下の方にスクロールしていきます.Run a terminalという項目があります.

f:id:LostEnryu:20161017032457p:plain

 今はDisabledになっています.DisabledをクリックするとNew shortcut...となるので,ここでCtrl+Alt+tと押します.なぜか表示はAlt+tとなりますが,これで挙動は問題ありません.Closeを押して設定を終了してください.

ターミナルの起動

 早速Ctrl+Alt+tを入力してみましょう.下のようにターミナルが起動できると思います.

f:id:LostEnryu:20161017032531p:plain

 さらにCtrl+Shift+tを押せば新しいタブが開きます.タブ間の移動はAlt+1, Alt+2のようにして実行できます.

f:id:LostEnryu:20161017032548p:plain

 さらにCtrl+Alt+tを押すと新しいウィンドウでターミナルが起動できます.Alt+Tabで操作するウィンドウを切り替えることができます.また,起動したターミナルはexitと入力することで終了します.ウィンドウに他のタブがあればそのタブが閉じ,他のタブがなければウィンドウが閉じます.Alt+F4でウィンドウを閉じることもできます.

 ターミナルはこれから何度も使うことになるので,一連のショートカットキーを覚えておくと作業が楽になるでしょう.

GUIベースのシャットダウン

 GNOMEでのシャットダウンは,左上の「System > Shut Down... > Shut Down」からできます.前回のようにVMwareのメニューから強制終了することもできますが,できるだけゲストOS内からシャットダウンするようにしましょう.

f:id:LostEnryu:20161017032623p:plain

f:id:LostEnryu:20161017032640p:plain

次回はターミナルからLinuxコマンドを使ってみましょう

Previous | Top | Next

Prev: 【第4回】仮想化環境の構築(3)

Next: 【第6回】Linuxコマンド入門(1)

Index
Journey

【第4回】仮想化環境の構築(3)

迷い森 仮想化 CentOS6

 皆さま,こんにちは. 迷子のエンリュです.

 前回はVMwareをインストールしました.今回はいよいよ,ゲストOSをインストールしていきます.ゲストOSとは仮想化マシンを動かすOSのことです.ホストOSの中でいくつかのゲストOSが稼働する形になります.VMwareを使って新規マシンをどんどん作っていくことで,一台のコンピュータであらゆるOSを動かしたり,仮想ネットワークを作って通信させたり,ということが可能になってきます.何だかわくわくしてきましたね.

 それでは早速始めていきましょう.よろしくお願いいたします.

ISOイメージのダウンロード

 VMware仮想マシンを構築するときは,OSインストールのためのISOイメージというのが必要になります.お店でOSを買うときはCD/DVDとして買うと思います.あのディスクに焼かれているソフトウェアのデータがISOイメージファイルなのです.ですから,市販のOSイメージを買ってきてドライブに挿入してもいいのですが,今回は無料で配布されているISOイメージをWebサイトからダウンロードしようと思います.

CentOS 6.8 のダウンロード

 今回インストールするのは,LinuxRedHat系OSで,サーバのOSとしてよく用いられる「CentOS」です.2016年10月16日現在,最新バージョンは「CentOS 7」ですが,まずはそのひとつ前のバージョンである「CentOS 6.8」をインストールしていこうと思います(理由はそのうち独りごとのコーナーで).

 CentOSのイメージはCentOS Wiki|ダウンロードページから無料でダウンロードすることができます.

CentOS Wiki|ダウンロードページ

f:id:LostEnryu:20161016225443p:plain

 CentOS Linux Version が6となっている行のCD and DVD ISO imagesから,x86_64を選びます.すると,指定したISOイメージをダウンロードできるリンクの一覧が表示されます.ここから適当に一つ選んでダウンロードします.これはどれでもいいです.私はいつも一番近そうなところを選びます.

f:id:LostEnryu:20161016225727p:plain

 リンクに飛ぶとisoイメージの一覧がずらっと表示されます.

f:id:LostEnryu:20161016225757p:plain

 今回使うのはCentOS-6.8-x86_64-bin-DVD1.isoというものです.LiveCDやLiveDVDというのはインストールしながら必要ファイルをオンラインでダウンロードしてくるものなので,インストールに時間がかかります.binはあらかじめ全部ダウンロードするので,インストール作業がオフラインでできますし,比較的早く終わります.ただ,4 GB近くあるので,ダウンロードには時間がかかります.お気を付けください.

 それでは,ダウンロードが終わるまで休憩~♪

CentOS 6.8 仮想マシンの作成

 ダウンロードは終わりましたでしょうか?

 お疲れ様です.それでは早速仮想マシンを作成していきましょう.前回インストールしたVMwareを起動してください.

f:id:LostEnryu:20161014200440p:plain

 ホーム画面(画像)の右側の「新規仮想マシンの作成」か,上のメニューバーからPlayer > ファイル > 新しい仮想マシンの順で仮想マシン作成ウィザードを起動させます.Cntl + Nでも起動できます.

 まずは簡易インストール機能を使ってお任せで作成してみましょう.  2番目のラジオボタンインストーラディスクイメージファイル(iso)」を選んで,参照から先ほどダウンロードしたISOイメージを選んでください.

f:id:LostEnryu:20161016225923p:plain

 選択するとOSが検出され,このOSは簡易インストールを使用しますと表示されます.「次へ」を押して次に進みましょう.

f:id:LostEnryu:20161016230001p:plain

 まずは,ユーザ情報を入力していきます.パスワードはできるだけ強固なものを設定します.間違っても空欄にしたり,passward12345678qwertyなどのわかりやすいものにはしないようにしましょう.入力したら「次へ」.

f:id:LostEnryu:20161016230042p:plain

 仮想マシンの名前は「CentOS 6.8」としておきます.ここは何でもいいですが,あとから「CentOS 7」も作成することになるので, 区別できるようにしましょう.場所には仮想マシンの設定,状態,ハードディスクのデータなどを格納するフォルダを指定します.かなり大きなデータになるので注意が必要ですが,特に問題ないようでしたらデフォルトで構いません.

f:id:LostEnryu:20161016230224p:plain

 次に進むと,ディスクのサイズが指定できるようになっています.ここはデフォルトでいいでしょう.足りない場合は,あとから追加することもできます.

f:id:LostEnryu:20161016230303p:plain

 次の画面で,設定を確認できます(画像では仮想マシンの名前が違っていますが,「CentOS 6.8」になっていればOKです).ハードウェアのカスタマイズもできますが,今回はこのままで作成していきます.最後に「完成」を押せば,仮想マシンのファイルが作成されてOSのインストールが始まります.

仮想マシン起動とOSのインストール

 インストールはすべて自動で進んでいきますが,とても時間がかかります.気長に待ちましょう.

f:id:LostEnryu:20161016230344p:plain

 ちなみに,OSのインストールはAnacondaというプログラムが実行していきます.インストールは/root/anaconda-ks.configというファイルにしたがって行われます.

GetCentOS68_5.PNG

 インストール作業は

  • 各種パッケージやLinuxカーネルのインストール
    • 15分ほど
  • ポストインストール作業
    • 5分から10分ほど
  • OSの起動,各種設定
    • 5分ほど
  • VMware Toolsインストール
    • 5分ほど

と進んでいきます.

 全体で30分ほどでインストール作業は完了し,ログイン画面になります. GetCentOS68_a.PNG  画面をクリックするか,Cntl + GでゲストOSに入ります.この状態になるとマウスの移動やキーボード入力などがゲストOSに反映されるようになります.逆にホストOSの操作はできなくなります.ウィンドウを動かしたり,サイズを変えたり,横のスクロールバーを動かしたいときには,Cntl + Altで制御をホストOSに戻す必要があります.それでは,ログイン画面のアカウント名(画像では「Lost Enryu」)をクリックして,最初に決めたパスワードを入力しましょう.「Login」ボタンを押すと,デスクトップ画面が表示されます.

f:id:LostEnryu:20161016230513p:plain

 ちなみに,このデスクトップはGNOMEといいます.CentOSのデスクトップはGNOMEKDEという2種類の環境があります.デスクトップ環境によって見た目や操作が大きく違ってくるので注意しましょう.

 これで,OSのインストール作業は完了です.これからの演習は,この仮想化環境で行っていくことになります.

 ゲストOSの画面がウィンドウサイズに合っていなかったりして,このままでは使いづらいですね.キーボードの配列も少し違うようです.まずは設定を色々変えないといけないですね.次回は基本的な設定を行っていきます.

VMwareから強制シャットダウン

 それでは今回はここまでです.お疲れさまでした.

 仮想マシンのシャットダウンは,基本的にはゲストOS内から正規の手順でシャットダウンさせるのが理想ですが,それは次回以降ご紹介するとして,今回はVMwareから強制シャットダウンの信号を送って終了する方法をお教えいたします.

 何か問題が発生してゲストOSが止まってしまったときなどは,この方法で強制終了したり再起動したりします.

 VMwareウィンドウの上のメニューバーから停止マークを選び,「ゲストをシャットダウン」をクリック.確認画面でEnterキーを押せば終了処理が始まります.

f:id:LostEnryu:20161016230609p:plain

 それではお疲れさまでした.

問題が起こったらすぐにグーグル先生に聞きましょう

Previous | Top | Next

Prev: 【第3回】仮想化環境の構築(2)

Next: 【第5回】CentOSの歩き方 GNOME編(1)

Index
Journey

仮想化技術のあれこれ ~入れ子とコンテナ~

独りごと 仮想化 Hyper-V コンテナ DevOps

 皆さま,こんにちは. 迷子のエンリュです.

 第2回から第4回までの仮想化環境構築編を書いておりました.

 仮想化ソフトウェアをどれにするか,随分と悩んだものです.結論としてVMwareをベースに,Macの人にはVirtual Boxも使ってもらいながら,という形になりましたが,いかがでしょうか.

 正直どちらのソフトウェアも,「無料でここまでやらせてくれるの!?」っていう高度なソフトウェアになっています.有料版との違いといえばVMの監視ツールがなかったり,有事の際のサポートがなかったりという点くらいで,自分で全部調べてやっちゃおう,これはうまくいかなかったけど問題ないだろう,っていう,勉強中の学生にはそれほど必要のないものです.仮想マシンが構築できて,そいつが満足に動いてくれるならそれでいい,というような私のような身には,無料版でも有り余るほどの性能ですね.Macの方には制約があるかもといっていましたが,このブログの演習環境としては十分だと思います.

Hyper-VとNested Virtualization

 さて,第2回で問題にさせていただきました,Nested Virtualizationについて,もう少し触れさせていただきましょう.

 最近Nested Virtualizationで話題になっているのは,Windows Server 2016から実現されたNested Hyper-Vでしょう. Windows Insider Preview: Nested Virtualization で,2015年10月13日にearly previewとしてリリースされました.あれからもう1年なんですね.記事の中では,Hyper-Vの入れ子によってWindowsの中のWindowsの中にWindowsが立ち上がっている写真が公開されました.

f:id:LostEnryu:20161014220755p:plain (画像: Windows Insider Preview: Nested Virtualization
https://blogs.technet.microsoft.com/virtualization/2015/10/13/windows-insider-preview-nested-virtualization/)

 これは壮観ですね.

Nested Virtualizationとコンテナ型仮想化による「DevOps」の実現

 しかし,なぜMicrosoftはNested Virtualizationを実装したのでしょうか.一体何のためにこのような複雑なことをしようとしたのでしょうか.記事の中にちらっと「Hyper-V Containers」という言葉が出てきます.これはヒントですね.新しい仮想化技術の概念としてコンテナ型仮想化というものがあります.普通のサーバ仮想化のような,OS丸ごとパッケージするよりも小さく,アプリケーション実行環境をパッケージングし,同一OSの上に分離されたプロセスとして展開する,というものです.

f:id:LostEnryu:20161014221501p:plain (画像:WHAT IS DOCKER? https://www.docker.com/what-docker)

 では,コンテナ型仮想化とNested Virtualizationはどのように関係するのでしょうか.コンテナ型仮想化システムのメリットはサーバ上に素早くサービス実行環境を構築できることです.これにより,従来よりも迅速に開発・運用を行っていく新しいビジネスの形「DevOps」が実現できるのです.そのためには,クラウド上で展開された仮想サーバに,仮想コンテナをどんどん乗っけていく形が理想的です.仮想コンテナを持つホストOSが仮想化されていれば,そのリソースを必要に応じて増減させることができるのです.Microsoftドキュメンテーションには,次のように記されています.

入れ子になった仮想化は、Hyper-V 仮想マシン内での Hyper-V の実行を可能にする機能です。 つまり、入れ子になった仮想化により、Hyper-V ホスト自体を仮想化することができます。 入れ子になった仮想化の使用例として、仮想化されたコンテナー ホストで Hyper-V コンテナーを実行したり、仮想化環境に Hyper-V ラボをセットアップしたり、個別のハードウェアを必要とせずに複数コンピューターのシナリオをテストしたりする方法があります。

(参照: Run Hyper-V in a Virtual Machine with Nested Virtualization)

 Nested Virtualizationの実現とコンテナ型仮想化の普及は,ITビジネスをより高速で効率的なものへと押し上げていくことでしょう.

 日本では文化的になかなか広がっていかないという「DevOps」.これからの世界で戦うために無視することのできないこの新しい概念と,従来のシステムをなかなか変えられない日本文化との折り合いをつけていくことも大切ですね.いつか「DevOps」についても記事を書きたいと思っておりますが,まずはこの新技術,Nested Virtualizationとコンテナ型仮想化について,いろいろ試していきたいところですね.

いろいろ参照記事

注目を浴びる「Dockerコンテナ」、従来の仮想化と何が違うのか?
VMwareとどう違う?Dockerに見るコンテナ型仮想化サービス
コンテナ技術の基礎知識
DevOpsとは何か? そのツールと組織文化、アジャイルとの違い
DevOpsとは開発と運用の改善ではない:4人の“DevOpsガイ”が熱弁

なんだか難しい話だったなあ...

Previous | Top | Next

Prev: 迷いの森

Next: 未定

Index
Journey