Category Archives: fedora

docker 入門

docker の使い方を整理中。Fedora 25 で 動作確認しました。OpenStack においても docker などのコンテナ技術の利用が広まっており、要注目です。

docker のインストール

$ sudo dnf install docker -y

docker サービスを開始して自動起動に設定

$ sudo systemctl start docker
$ sudo systemctl enable docker

proxy 環境下で docker を利用する場合の設定

参考サイト: https://docs.docker.com/engine/admin/systemd/#httphttps-proxy

(1) docker サービス用の systemd カスタムディレクトリを作成します。

$ sudo mkdir -p /etc/systemd/system/docker.service.d

(2) このディレクトリに .conf ファイルを作成し、HTTP_PROXY 環境変数を追加します。

$ sudo cat <<"EOF"> /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
EOF

(3) systemd の設定変更をシステムに通知します。

$ sudo systemctl daemon-reload

(4) docker サービスを再起動します。

$ sudo systemctl restart docker

(5) 設定がロードされたことを確認します。

$ sudo systemctl show --property=Environment docker | cat

 
 
これより、docker の使い方の説明に入りますが、docker はデフォルトでは root ユーザーによる操作のみとなります。参考サイト: https://developer.fedoraproject.org/tools/docker/docker-installation.html

リポジトリ上の centos イメージを検索

$ sudo docker search centos

centos イメージのすべての TAG の一覧を取得

TAG とはイメージの特定のバージョンに名前をつけたものと考えるとよいです。つぎのコマンドの実行には jq パッケージを「sudo dnf install jq -y」で事前にインストールしておく必要があります。

$ curl -s "https://registry.hub.docker.com/v1/repositories/centos/tags" | jq -r '.[].name' | sort -V
または
$ curl -s "https://registry.hub.docker.com/v1/repositories/centos/tags" | python -mjson.tool

あるいは、ブラウザで docker hub のサイト https://hub.docker.com/ を開き、Search Box 欄に centos と入力して送信すると検索できます。

特定の TAG のイメージのみをダウンロード

イメージの全体をダウンロードできるし、特定の TAG のもののみをダウンロードすることもできます。

$ sudo docker pull centos:centos6.7

ローカルに保存されたイメージの一覧を表示

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    centos6.7           ab44245321a8        7 months ago        190.6 MB

イメージを元にしてコンテナを開始

イメージを元にしてコンテナを作成して開始します。このとき例えば「c67」といった名前を付けておくと、後からその名前で開始・停止・削除などができて便利です。「-it」オプションにより、開始後はコンテナの仮想端末に接続されます。コンテナ内で開始されたときに最初に実行するコマンドとして bash を指定しています。

$ sudo docker run -it --name c67 centos:centos6.7 bash
[root@190d9699c6fd /]# cat /etc/redhat-release
CentOS release 6.7 (Final)

コンテナの仮想端末から切断

「CTRL+p+q」をタイプします。このときは、バックグラウンドでまだコンテナが実行中です。

実行中のコンテナの一覧を表示

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
190d9699c6fd        centos:centos6.7    "bash"              About a minute ago   Up About a minute                       c67

コンテナの仮想端末に再接続

バックグラウンドで実行中のコンテナの仮想端末に再接続します。

$ sudo docker attach c67

コンテナを終了

コンテナ内で最初に実行した bash を exit して終了すると、この時点でコンテナも終了します。

# exit

実行中のコンテナを確認してみると存在しなくなっています。

$ sudo docker ps
CONTAINER ID  IMAGE             COMMAND      CREATED         STATUS         PORTS  NAMES

「ps -a」コマンドで停止中のコンテナも含めて確認できます。

$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
190d9699c6fd        centos:centos6.7    "bash"              2 minutes ago       Exited (0) 14 seconds ago                       c67

実行中のコンテナを停止

$ sudo docker stop c67

停止中のコンテナを再開

バックグラウンドでコンテナを再開します。

$ sudo docker start c67

コンテナを削除

コンテナを削除します。

$ sudo docker rm -f c67

本日はここまで。

参考書籍: https://www.amazon.co.jp/dp/4774176540/

Linux から Windows 2012 にリモートデスクトップ接続

Fedora から Windows Server 2012 R2 にリモートデスクトップ接続しようとしたとき、rdesktop コマンドを使うと、なぜか以下のようなエラーが表示されて接続できませんでした。

$ rdesktop 192.168.100.100
Autoselected keyboard map en-us
Failed to connect, CredSSP required by server.

(参考)
https://bugzilla.redhat.com/show_bug.cgi?id=1075697

かわりに xfreerdp コマンドを使ってみたところ接続できました。

xfreerdp をインストールするにはつぎのコマンドを入力します。

# dnf install xfreerdp -y

xfreerdp コマンドで Windows Server 2012 R2 にリモートデスクトップ接続するにはつぎのようにコマンドを入力します。

$ xfreerdp /u:<User> /p:<Password> /d:<Domain> /f /v:<IP-Address> /kbd:US +toggle-fullscreen

フルスクリーンで表示されるので、画面内で CTRL+ALT+ENTER を入力すると Exit (トグル)できます。すなわちフルスクリーンを ON/OFF できます。

もし、以下のようなエラーが表示されて接続できなくなったときは、

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

つぎのコマンドで、xfreerdp 用の known_hosts ファイルをクリアすることで対応できます。

$ cp /dev/null ~/.config/freerdp/known_hosts

Fedora の不要なプロセスを停止してみた

Fedora 23/24 にて、やたらと不要なプロセスがたくさん実行されている気がする。使っていそうにないプロセスを停止してみた。いまのところ特に問題なし。また、ヒストリー関連のクリアしてみた。

1. avahi-daemon を停止する

# systemctl disable avahi-daemon.service

2. abrt(Automatic Bug Reporting Tool) を停止する

# systemctl disable abrt-ccpp.service
# systemctl disable abrt-oops.service
# systemctl disable abrt-vmcore.service
# systemctl disable abrt-xorg.service
# systemctl disable abrtd.service

3. zeitgeist などを停止する

すまん、ドイツ語は苦手なのだ。俺は “Poltergeist” のほうが好きだな。

# cd /etc/xdg/autostart/
# ls -1
...
# mv zeitgeist-datahub.desktop{,-inactive}
# mv abrt-applet.desktop{,-inactive}
# mv evolution-alarm-notify.desktop{,-inactive}
# mv gnome-welcome-tour.desktop{,-inactive}
# mv tracker-extract.desktop{,-inactive}
# mv tracker-miner-apps.desktop{,-inactive}
# mv tracker-miner-fs.desktop{,-inactive}
# mv tracker-miner-rss.desktop{,-inactive}
# mv tracker-miner-user-guides.desktop{,-inactive}
# mv tracker-store.desktop{,-inactive}

4. evolution などを停止する

俺には国際救助隊 “Thunderbird” がバックにいるので、evolution は不要だな。

# dnf erase evolution
# cd /usr/share/dbus-1/services
# ls -al | grep -i evolution
...
# mv org.gnome.evolution.dataserver.AddressBook.service{,-inactive}
# mv org.gnome.evolution.dataserver.Calendar.service{,-inactive}
# mv org.gnome.evolution.dataserver.Sources.service{,-inactive}
# mv org.gnome.evolution.dataserver.UserPrompter.service{,-inactive}

5. Gnome のヒストリーのクリア

All Settings (gnome-controle-center) > Privacy > Usage & Histry > Clear Recent Histry

6. FireFox のヒストリーのクリア

FireFox のメニューから
Edit > Preferences > Privacy > clear your recent histry

ちょっと、すっきりした。

7. plymouth 関連のパッケージの削除

起動時間を短縮するには、以下のコマンドで、どのユニットの起動に時間がかかっているかを調べるとよい。

起動時間のサマリー表示
# systemd-analyze

ユニットの起動時間の一覧を表示
# systemd-analyze blame | cat

ユニットの起動状況をツリー形式で表示
# systemd-analyze critical-chain

起動時のメッセージの確認
# journalctl -x -b | cat

plymouth 関連を削除すると短縮できそうだ。plymouth はブート時にグラフィカル表示をおこなう機能であるが、これは Linux ユーザーには不要だと思う。思い切って削除してみる。

# dnf erase plymouth -y

8. journal ログの削除

Gnome の起動に時間がかかっているようだが、これは journal ログを削除すると多少は改善されそうだ。

# rm -rf /var/log/journal/*

9. GRUB のタイムアウト時間を 0 に変更

これは既に設定されている人が多いと思うが、念の為。
まずは GRUB 設定ファイルのバックアップを取得する。

# cp -ipv /etc/default/grub{,-ORG}

以下の2箇所を変更する。

  • GRUB_TIMEOUT の行の値を小さくする
  • GRUB_CMDLINE_LINUX の行の「rhgb quiet」を削除する

sed を使って変更するには以下のコマンドを実行すればよい。

# F1=/etc/default/grub
# sed -i 's/GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/g' $F1
# sed -i '/GRUB_CMDLINE_LINUX=/s/ rhgb//g' $F1
# sed -i '/GRUB_CMDLINE_LINUX=/s/ quiet//g' $F1

変更内容を確認する。

# diff /etc/default/grub{-ORG,}

変更したら、つぎのコマンドを実行して設定内容を反映させる。

# grub2-mkconfig -o /boot/grub2/grub.cfg

だいぶ、すっきりした。

VMware Workstation 12 Pro Linux 版のインストール

Fedora 25 に VMware Workstation 12.5.2 Linux 版をインストールしてみました。

準備

VMware Workstation のインストールに必要な依存パッケージを事前にインストールします。

# dnf -y group install "Development Tools"
# dnf -y install kernel-devel kernel-headers

VMware Workstation 12 Pro のダウンロード

以下より VMware Workstation 12 Pro Linux 評価版をダウンロードします。
http://www.vmware.com/products/workstation/workstation-evaluation

最新版がダウンロードされます。2017年1月16日時点では、以下がダウンロードできました。
VMware-Workstation-Full-12.5.2-4638234.x86_64.bundle

VMware Workstation 12 Pro のインストール開始

Fedora 25 のデスクトップは、デフォルトでは Wayland の Gnome が採用されています。しかし、VMware Workstation 12.5.2 はまだ Wayland の Gnome をサポートしていません。”Gnome” をいったんログアウトし、”GNOME on Xorg” でログインしなおしてインストールします。ログイン画面の “Sign In” ボタンの横に、歯車アイコンが表示されるので、それをクリックして “GNOME on Xorg” を選択してログインしてください。

つぎのコマンドでインストーラを開始します。

# chmod a+x ./VMware-Workstation-Full-12.5.2-4638234.x86_64.bundle
# ./VMware-Workstation-Full-12.5.2-4638234.x86_64.bundle

下記のようなエラーメッセージが表示されますが無視して進めます。

Extracting VMware Installer...done.

(vmware-installer.py:6379): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
/usr/share/themes/Adwaita/gtk-2.0/main.rc:733: error: unexpected identifier `direction', expected character `}'

(vmware-installer.py:6379): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
/usr/share/themes/Adwaita/gtk-2.0/hacks.rc:28: error: invalid string constant "normal_entry", expected valid string constant
Gtk-Message: Failed to load module "pk-gtk-module": libpk-gtk-module.so: cannot open shared object file: No such file or directory
Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory

インストーラの画面にしたがって操作します。画面については、「VMware Workstation 11」のときと大きな変化はないので省略します。

  1. 「VMware Workstation – End User License Agreement」の画面が表示されるので、「I accept …」を選択して [Next] ボタンをクリックします。
  2. 「VMware OVF Tool component for Linux – End User License Agreement」の画面が表示されるので、「I accept …」を選択して [Next] ボタンをクリックします。
  3. 「Would you like to check for product updates on startup?」の画面が表示されるので、「No」を選択して [Next] ボタンをクリックします。
  4. 「Would you like to help make VMware software …」の画面が表示されるので、「No」を選択して [Next] ボタンをクリックします。
  5. 「Please enter the user that will initially connect to Workstation Server …」の画面が表示されるので、「root」を変更して通常ログインしvmware で使用するユーザー名を入力します。[Next] ボタンをクリックしてつぎに進みます。
  6. 「Please choose a directory for your shared virtual machines.」の画面が表示されるので、特に変更しないで、[/var/lib/vmware/Shared VMs]のまま[Next] ボタンをクリックしてつぎに進みます。
  7. 「Please enter the port to use for https access to Workstation Server.」の画面が表示されるので、HTTPS port: [443] を適切に変更して [Next] ボタンをクリックしてつぎに進みます。
  8. 「Enter license key.」の画面が表示されるので、空白のまま [Next] ボタンをクリックしてつぎに進みます。
  9. 「The product is ready to installed.」の画面が表示されるので、[Install] ボタンをクリックしてつぎに進みます。
  10. 「Installing …」の画面が表示されるので、完了するまで待ちます。
  11. 「Installation was successful.」の画面が表示されるので、[Close] ボタンをクリックします。

VMware Workstation に対するパッチ作業

2017年1月16日時点では、Fedora 25 の最新カーネルは、kernel-4.9.3-200 となっています。VMware Workstation 12.5.2 は kernel-4.9.x にまだ対応していないため、このバージョンのカーネルでは正常に起動できません。VMware Workstation に対して以下のパッチ作業が必要です。つぎのコマンドを実行してパッチ作業とモジュールのコンパイルを行います。

# cd /usr/lib/vmware/modules/source/
# cp -npv vmmon.tar{,-ORG}
# tar xvf vmmon.tar
# wget https://communities.vmware.com/servlet/JiveServlet/download/2644848-168136/ws-12.5.2-linux-4.9-vmmon-only.patch.zip
# unzip ws-12.5.2-linux-4.9-vmmon-only.patch.zip
# patch -p0 < ws-12.5.2-linux-4.9-vmmon-only.patch
# tar cvf /usr/lib/vmware/modules/source/vmmon.tar vmmon-only
# rm -rf vmmon-only

# cd /usr/lib/vmware/modules/source/
# cp -npv vmnet.tar{,-ORG}
# tar xvf vmnet.tar
# wget https://communities.vmware.com/servlet/JiveServlet/download/2644848-168137/ws-12.5.2-linux-4.9-vmnet-only.patch.zip
# unzip ws-12.5.2-linux-4.9-vmnet-only.patch.zip
# patch -p0 < ws-12.5.2-linux-4.9-vmnet-only.patch
# tar cvf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only
# rm -rf vmmon-only

# vmware-modconfig --console --install-all

以上で完了です。”GNOME on Xorg” の環境で VMware Workstation が正常に起動できることを確認してください。

参考:
https://ask.fedoraproject.org/en/question/98084/error-on-vmware-in-fedora-25/
https://communities.vmware.com/message/2644848
http://rglinuxtech.com/?p=1847

TCX ファイルを GPX ファイルに変換する

ランニング・サイクリング・ウォーキングなどの GPS アプリのデータを Google Map で表示したいと思っている人は多いでしょう。GPS アプリの多くはその移動ルートを TCX ファイルでエクスポートできます。しかし、Google Map は TCX ファイルを直接にインポートすることができません。そこで、TCX ファイルを GPX ファイルに変換する必要があります。

Fedora 23 では標準で GPSBabel のパッケージが用意されているので、これを使って TCX から GPX への変換ができます。

GPSBabel のインストール手順は以下のとおりです。

# dnf search all gpsbabel
...
gpsbabel.x86_64 : A tool to convert between various formats used by GPS devices
gpsbabel-gui.x86_64 : Qt GUI interface for GPSBabel

# dnf install gpsbabel gpsbabel-gui -y

gpsbabel コマンドを使ってファイルの形式を変換できます。使い方は以下のとおりです。

$ gpsbabel -i <入力形式> -f <入力ファイル> -o <出力形式> -F <出力ファイル>

例えば、TCX ファイルを GPX ファイルに変換する場合、つぎのコマンドを実行します。

$ gpsbabel -i gtrnctr -f input.tcx -o gpx -F output.gpx

上記の「-i gtrnctr」は入力ファイルの形式として「Garmin Training Center (.tcx)」を指定することを意味し、「-o gpx」は出力ファイルの形式として「GPX XML」を指定することを意味します。詳細は「gpsbabel --help」コマンドで確認するか、Web サイト http://www.gpsbabel.org/ を参照してください。

または GUI フロントエンド (gpsbabelfe-bin) も用意されているのでこれを利用すると簡単です。入力ファイル名とその形式、出力ファイル名とその形式を指定して OK ボタンをクリックするだけです。実際に実行されるコマンドが下方のテキストボックスに表示されるので便利です。

gpsbabelfe-bin-01

GPX ファイルに変換できたら、これを用いて Google Map のマイマップにインポートして自分の地図を作成することができます。

Fedora 23 に Google Earth をインストール

Google Earth を Fedora 23 にインストールしました。自分の環境では、どうも最新の Google Earth (GE7) はうまく動作しませんでした。替わりに古い Google Earth (GE6) をインストールしてみたところ問題なく動作しました。以下にその代替のインストール手順を紹介します。

既存の Google Earth がインストールされている場合は削除します。

# rpm -ev --nodeps google-earth-stable

古いバージョンの Google Earth (GE6) をダウンロードします。

# wget http://dl.google.com/earth/client/GE6/release_6_2_2/google-earth-stable-6.2.2.6613-0.x86_64.rpm

ダウンロードした Google Earth (GE6) をインストールします。このとき、rpm コマンドを使って「--force」オプションを付けて実行する必要があります。dnf コマンドを使ってインストールしようとすると、「Error: Transaction check error: file /usr/bin from install of google-earth-stable-#.#.#.####-#.x86_64 conflicts with file from package filesystem-3.2-35.fc23.x86_64」と表示されてインストールに失敗します。

# rpm -ivh --force google-earth-stable-6.2.2.6613-0.x86_64.rpm

その他の必要なライブラリをインストールします。

# dnf install redhat-lsb*
# dnf install redhat-lsb*.i686
# dnf install mesa-dri-drivers*
# dnf install mesa-dri-drivers*.i686

以上で、インストールは完了です。なお、Linux 版 Google Earth はプロキシ下のネットワーク環境では使用できないようです。Google Earth の起動シェル「/usr/bin/google-earth」の43〜44行目に環境変数を設定すると動作するという情報がありましたが未確認です。

script_path=$(FindPath $0);

cd $script_path;

export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin "$@"

実は、最新の Google Earth (GE7) ですが、新しく作成した Fedora 23 の仮想マシンで試すと問題なくインストールできて正常に動作します。しかし、自分の物理 PC の Fedora 23 で試すと、いろいろアップデートをかけているせいか、Google Earth をインストール後に起動しようとすると、スプラッシュスクリーンを表示した直後にクラッシュしてしまいます。

以下の画像は KVM 仮想マシン上の Fedora 23 で、Google Earth 7 を実行しているときのイメージです。

fedora23-google-earth7-on-vm

以下の画像は物理 PC 上の Fedora 23 で、Google Earth 6 を実行しているときのイメージです。

fedora23-google-earth6-on-pm

(2016.09.10 追記)
Fedora 24 では最新の Google Earth (google-earth-stable.x86_64 7.1.7.2600-0 , Build Date 8/25/2016) を普通にインストールできることを確認しました。手順はつぎのとおりです。

# wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_x86_64.rpm
# dnf install ./google-earth-stable_current_x86_64.rpm 

Fedora 22 を Kernel 4.2.3-200 にアップデートすると VMware Workstation 11 が起動できない

Fedora 22 のカーネルを 4.2.3-200 にアップデートすると、VMware Workstation 11 が起動しなくなります。これに対処するには、VMware にパッチをあてるか、Kernel をダウングレードするかの2つの方法があります。

VMware にパッチをあてる方法

https://communities.vmware.com/thread/516196
に書かれている内容を参考にパッチ作業をしたところ、うまく起動するようになりました。以下にその手順を紹介します。

(1) VMware モジュールのソースディレクトリに移動

# cd /usr/lib/vmware/modules/source

(2) vmnet.tar のバックアップの取得

# cp -npv vmnet.tar{,-ORG}
# ls -1 vmnet.tar*
vmnet.tar
vmnet.tar-ORG

(3) vmnet.tar の展開。
これにより「vmnet-only」ディレクトリが作成されます。

# tar -xf vmnet.tar

(4) vmnet-only/vmnetInt.h のバックアップの取得

# cp -npv vmnet-only/vmnetInt.h{,-ORG}
# ls -1 vmnet-only/vmnetInt.h*
vmnet-only/vmnetInt.h
vmnet-only/vmnetInt.h-ORG

(5) vmnet-only/vmnetInt.h の修正
vi エディタなどを使用して vmnet-only/vmnetInt.h を修正します。

# vi vmnet-only/vmnetInt.h

変更内容は 82 行目に示すように関数 sk_alloc の引数の最後に「,1」を追加しただけです。

変更前:

#ifdef VMW_NETDEV_HAS_NET
#   define compat_sk_alloc(_bri, _pri) sk_alloc(&init_net, \
                                                PF_NETLINK, _pri, &vmnet_proto)
#else
#   define compat_sk_alloc(_bri, _pri) sk_alloc(PF_NETLINK, _pri, &vmnet_proto, 1)
#endif

変更後:

#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
#   define compat_sk_alloc(_bri, _pri) sk_alloc(&init_net, \
                                                PF_NETLINK, _pri, &vmnet_proto, 1)
#else
#   define compat_sk_alloc(_bri, _pri) sk_alloc(PF_NETLINK, _pri, &vmnet_proto, 1)
#endif

変更できたことを確認します。

# diff vmnet-only/vmnetInt.h{-ORG,}
82c82
<                                                 PF_NETLINK, _pri, &vmnet_proto)
---
>                                                 PF_NETLINK, _pri, &vmnet_proto, 1)

(6) vmnet-only ディレクトリを tar で固め直す

# tar -cf vmnet.tar vmnet-only
# rm -rf vmnet-only

(7) VMware のモジュールのコンパイルとインストール

# vmware-modconfig --console --install-all

(8) VMware の動作確認
もし、動作しなかった場合は、以下の手順で元の状態にもどせます。

# mv vmnet.tar-ORG vmnet.tar

その場合、カーネルをダウングレードする方法を試してください。

Kernel をダウングレードする方法

(1) インストールされているカーネルを確認
この例では、Installed Packages の部分より3つの版のカーネルがインストールされていることがわかります。

# dnf list --showduplicates kernel
Installed Packages
kernel.x86_64              4.1.8-200.fc22             @updates
kernel.x86_64              4.1.10-200.fc22            @updates
kernel.x86_64              4.2.3-200.fc22             @updates
Available Packages
kernel.x86_64              4.0.4-301.fc22             fedora
kernel.x86_64              4.1.8-200.fc22             @updates
kernel.x86_64              4.1.10-200.fc22            @updates
kernel.x86_64              4.2.3-200.fc22             @updates
kernel.x86_64              4.2.3-200.fc22             updates

(2) GRUB メニューにエントリーされているカーネルを確認

# grep "submenu\|^\menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
Fedora (4.2.3-200.fc22.x86_64) 22 (Twenty Two) ◀ 現在のカーネル
Fedora (4.2.3-200.fc22.x86_64+debug) 22 (Twenty Two)
Fedora (4.1.10-200.fc22.x86_64+debug) 22 (Twenty Two)
Fedora (4.1.10-200.fc22.x86_64) 22 (Twenty Two) ◀ このカーネルで起動したい
Fedora (4.1.8-200.fc22.x86_64+debug) 22 (Twenty Two)
Fedora (4.1.8-200.fc22.x86_64) 22 (Twenty Two)
Fedora (0-rescue-b23d8567a69543dd97597198bda98d95) 22 (Twenty Two)

(3) 現在の GRUB 設定ファイルの内容を確認

# cat /etc/default/grub
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora_f22ud1/swap rd.lvm.lv=fedora_f22ud1/root"
GRUB_DISABLE_RECOVERY="true"

(4) GRUB 設定ファイルを変更
GRUB 設定ファイルのバックアップを取得します。

# cp -npv /etc/default/grub{,-ORG}

/etc/default/grub ファイルを開き、GRUB_DEFAULT の行を変更します。デフォルトでは「saved」に設定されていますが、これに起動させたいカーネルのタイトルを指定します。4.2.3-200 よりも前のカーネル、たとえば、4.1.10-200 や 4.1.8-200 のメニュータイトルを指定してください。

変更前:
GRUB_DEFAULT=saved
→
変更後:
GRUB_DEFAULT='Fedora (4.1.10-200.fc22.x86_64) 22 (Twenty Two)'

sed で変更するにはつぎのようにコマンドを入力します。

# sed -i -e "s/GRUB_DEFAULT=.*/GRUB_DEFAULT='Fedora (4.1.10-200.fc22.x86_64) 22 (Twenty Two)'/g" /etc/default/grub

変更内容を確認する。

# diff /etc/default/grub{-ORG,}

GRUB に反映させます。

# grub2-mkconfig -o /boot/grub2/grub.cfg

(5) 再起動した後、カーネルのバージョンを確認
再起動します。

# reboot

再起動後のカーネルのバージョンを確認します。

# uname -r
4.1.10-200.fc22.x86_64

ジャーナルログからもカーネルのバージョンを確認します。

# journalctl -b | grep -i 'Linux version'
Oct 24 11:02:17 localhost.localdomain kernel: Linux version 4.1.10-200.fc22.x86_64 (mockbuild@bkernel01.phx2.fedoraproject.org) (gcc version 5.1.1 20150618 (Red Hat 5.1.1-4) (GCC) ) #1 SMP Mon Oct 5 14:22:49 UTC 2015

(6) VMware の動作確認
VMware を起動して、仮想マシンが正常起動できることを確認します。

(7) kernel の自動更新の禁止
kernel が自動更新されないよう設定しておきます。

# cat <<"EOF">> /etc/dnf/dnf.conf
exclude=kernel*
EOF

# cat /etc/dnf/dnf.conf

(2015.11.23 追記)
Fedora 23 に VMware Workstation 12 Pro をインストールした場合にも、VMware Workstation を正常に起動できない問題が発生するようです。これについては、以下のサイトに回避策が紹介されています。
http://vcojot.blogspot.jp/2015/11/vmware-worksation-12-on-fedora-core-23.html

いろいろと書いてありますが、VMware Workstation 12 Pro をインストール後に以下の操作を実行することで正常に起動できるようになります。

# wget https://raw.githubusercontent.com/ElCoyote27/krynn-tools/master/Update_VMW.sh
# sh ./Update_VMW.sh

virt-install による仮想マシンの自動インストール

KVM を利用するとスクリプトを使って仮想マシンを全自動でインストールすることができます。KVM のインストール手順は前回に説明しました。今回は virt-install、guestfish というコマンドを利用して CentOS 7.1 の仮想マシンを全自動でインストールしてみます。Fedora 22 で動作確認をしました。

guestfish のインストール

guestfish は KVM ホストに事前にインストールしておく必要があります。Fedora 22 ではつぎのコマンドで guestfish をインストールできます。

# dnf install '*guestf*' -y

virt-install コマンド

virt-install コマンドを使用して、仮想マシンのインストールをコマンドラインから実行することができます。kickstart ファイルを組み合わせることで、手作業による操作が不要になり、全自動で仮想マシンのインストールが可能になります。

virt-install コマンドの使い方に関しては、つぎに示すオプションが重要なポイントです。

(1)「--initrd-inject=<file>」
インストーラが仮想マシンを起動する前に、指定したローカルのファイルをインストーラの initrd.img の中に埋め込みます。今回の例では kickstart ファイルを指定しています。ここで「ローカル」とは KVM ホスト上のファイルのことを意味します。

(2)「--extra-args=”ks=file:/<kickstart file>”」
仮想マシンの起動時に、initrd 内の kickstart ファイルを使用して Anaconda による自動インストールを開始させます。

(3)「--noautoconsole」
仮想マシンのインストール時にコンソールを表示しないオプションです。OSのインストールが完了した後に、仮想マシンをシャットダウンするには、このオプションが必要です。

guestfish コマンド

guestfish を使用すると、仮想マシンを起動することなく仮想マシン内のファイル編集やコマンド実行が可能になります。guestfish を使用して仮想マシン上の任意のコマンドを実行するには、「command」コマンドを使用します。ただし、筆者が確認したところ、「firewall-cmd」など一部のコマンドがうまく実行できませんでした。このため、Firewall の設定は firewalld の設定ファイルを直接書き換えています。

今回の例は、guestfish を使用しなくても、kickstart の「%post」セクションを使用して実現できます。しかし、guestfish には copy-in、copy-out、upload、download といったコマンドが用意されており、これを使ってローカルとゲスト間のファイル転送が簡単に実現できます。これと同じことを kickstart で実現するのは面倒です。

仮想マシンの自動インストールスクリプト

以下に示すスクリプトは CentOS 7.1 の仮想マシンを指定した IP アドレスでインストールし、Web サーバーを起動して、Firewall の設定をする例です。シェルの実行が完了した後は、ブラウザで http://192.168.122.111 にアクセスして Apache のテスト画面を見ることができます。また仮想マシンのコンソールにアクセスするには、root ユーザーから「virsh console centos7-web」コマンドを実行します。CTRL + ] をタイプすると仮想マシンのコンソールから抜け出ることができます。

スクリプトを実行する前に、事前に CentOS 7.1 のインストールメディア「CentOS-7-x86_64-DVD-1503-01.iso」を「/var/lib/libvirt/images」ディレクトリ以下にコピーしておいてください。

以下のサンプルはここからダウンロードできます。

#!/bin/sh

echo "*** installation job starting ***"

# ----------------------------------------------------------
# Parameters
# ----------------------------------------------------------

# Guest Name (Domain Name)
DOM=centos7-web
# Guest Image File
IMG=/var/lib/libvirt/images/${DOM}.qcow2
# Guest Memory Size (MB)
RAM=1024
# Guest Image File Size (GB)
SIZE=10
# Install Media (ISO)
DVD=/var/lib/libvirt/images/CentOS-7-x86_64-DVD-1503-01.iso
# Kickstart file
KSF=${DOM}-ks.cfg

# root password
PASSWORD=password
# Hostname
HOSTNAME=centos7-web.example.com
# IP Address
IP=192.168.122.111
# Netmask
NETMASK=255.255.255.0
# Gateway
GATEWAY=192.168.122.1
# DNS server
NAMESERVER=8.8.8.8,8.8.4.4
# NTP server
NTPSERVERS=0.centos.pool.ntp.org,1.centos.pool.ntp.org,2.centos.pool.ntp.org,3.centos.pool.ntp.org

# ----------------------------------------------------------
# Initial Check
# ----------------------------------------------------------

# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
    echo "This script must be run as root" 1>&2
    exit 1
fi

# ----------------------------------------------------------
# remove & clear old vm if existing
# ----------------------------------------------------------

# stop domain forcefully
virsh destroy ${DOM} >/dev/null 2>&1
# undefine domain
virsh undefine ${DOM} --remove-all-storage >/dev/null 2>&1
# remove domain image file
rm -f ${IMG} >/dev/null 2>&1

# ----------------------------------------------------------
# create kickstart file
# ----------------------------------------------------------

echo "*** kickstart file creating ***"

cat << _EOF_ > ${KSF}
# Install OS instead of upgrade
install
# shutdown after installation
shutdown
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# graphical or text install
text
# Run the Setup Agent on first boot
firstboot --disable
# use /dev/vda for install destination
ignoredisk --only-use=vda
# SELinux configuration
selinux --enforcing
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network \
--device=eth0 \
--bootproto=static \
--ip=${IP} \
--netmask=${NETMASK} \
--gateway=${GATEWAY} \
--nameserver=${NAMESERVER} \
--noipv6 \
--activate
network --hostname=${HOSTNAME}
# Firewall configuration
firewall --enabled --ssh --http
# Root password
rootpw --plaintext ${PASSWORD}
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Tokyo --isUtc --ntpservers=${NTPSERVERS}
# System bootloader configuration
bootloader --location=mbr --boot-drive=vda --append=" crashkernel=auto" 
# Partition clearing information
clearpart --none --initlabel 
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=vda --size=500
part pv.20 --fstype="lvmpv" --ondisk=vda --size=8192 --grow
volgroup centos --pesize=4096 pv.20
logvol swap --fstype="swap" --size=921 --name=swap --vgname=centos
logvol / --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos

%packages
@core
@base
@web-server
kexec-tools

bind-utils
binutils
chrony
lsof
ltrace
man-pages
net-tools
pciutils
psmisc
sos
strace
sysstat
tcpdump
telnet
usbutils
wget

%end
_EOF_

echo "*** kickstart file created ***"

# ----------------------------------------------------------
# guest install using virt-install command
# ----------------------------------------------------------

echo "*** virt-install starting ***"

virt-install \
--name=${DOM} \
--ram=${RAM} \
--vcpus=1 \
--os-type=linux \
--os-variant=rhel7.0 \
--file=${IMG} \
--file-size=${SIZE} \
--location=${DVD} \
--network=bridge:virbr0 \
--nographics \
--initrd-inject=${KSF} \
--extra-args="ks=file:/${KSF} console=tty0 console=ttyS0,115200n8" \
--noautoconsole

# wait until guest installation is completed
finished="0";
while [ "${finished}" = "0" ]; do
  sleep 5
  domstate=`virsh domstate ${DOM}`
  if [ "${domstate}" = "shut off" ]; then
    finished=1;
  fi
done
sleep 5

echo "*** virt-install finished ***"

# ----------------------------------------------------------
# customize guest using guestfish
# ----------------------------------------------------------

echo "*** guestfish starting ***"

# swapiness settings
F1=/etc/sysctl.d/swappiness.conf
# ipv6 settings
F2=/etc/sysctl.d/disable_ipv6.conf
# firewall settings file (original)
F3=/etc/firewalld/zones/public.xml
# firewall settings (new) ... ssh, http, https enabled
F3_NEW=$(mktemp)
cat << _EOF_ > ${F3_NEW}
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="http"/>
  <service name="https"/>
</zone>
_EOF_

# run guestfish
guestfish -d ${DOM} -i << _EOF_
  # change grub timeout setting
  command "sed -i -e 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub"
  command "grub2-mkconfig -o /boot/grub2/grub.cfg"

  # suppress swapping
  write        ${F1} "vm.swappiness = 0\n"

  # disable ipv6
  write        ${F2} "net.ipv6.conf.all.disable_ipv6 = 1\n"
  write-append ${F2} "net.ipv6.conf.default.disable_ipv6 = 1\n"

  # enable httpd
  command "systemctl enable httpd"

  # backup oroginal firewall setting
  cp-a ${F3} ${F3}.old
  # upload new firewall settings
  upload ${F3_NEW} ${F3}
  # enable firewalld
  command "systemctl enable firewalld"
_EOF_

echo "*** guestfish finished ***"

# ----------------------------------------------------------
# Start guest
# ----------------------------------------------------------

virsh start ${DOM}

echo "*** all job finished ***"

# ----------------------------------------------------------
# EOJ
# ----------------------------------------------------------

2016.10.2 追記

最新のスクリプトは github に公開しています

最新のスクリプトは以下の github に公開しています

https://github.com/uvirt/kvm-sample

XRDP Remote Desktop のインストール

XRDP をインストールすると、Windows のリモートデスクトップ機能を使用して Fedora に接続できるのでとても便利です。以下は Fedora 22 で動作確認しました。ログインユーザは wheel グループに属するユーザ(admin user)を用いて確認しました。

xrdp パッケージをインストール

# dnf install xrdp -y

SELinux をいったん Permissive に変更

xrdp を起動する前にいったん SELinux を Permissive に変更します。これをしないと xrdp サービスの起動に失敗する場合があります。最終的には SELinux 関連の設定をおこない、その後に Enforcing に戻すことにします。

# setenforce 0

xrdp サービス起動・有効化

xrdp サービス起動・有効化します。

# systemctl enable xrdp.service
# systemctl start xrdp.service

# systemctl enable xrdp-sesman.service
# systemctl start xrdp-sesman.service

正常起動されていることを確認します。以下のように「active (running)」と表示されていれば OK です。

# systemctl status xrdp
  ...
  Active: active (running) ...
  ...

Firewall の xrdp ポートを開く

現在の Firewall ゾーンを取得します。Fedora Live CD を使ってインストールした環境では、デフォルトでは「FedoraWorkstation」になっています。

# ZONE=`firewall-cmd --get-active-zone|head -1`
# echo $ZONE
FedoraWorkstation

サービスの一覧を取得し、「ms-wbt」が存在することを確認します。「ms-wbt」とは Microsoft Windows Based Terminal の略で Windows Remote Desktop を意味します。「ms-wbt」は 3389/tcp ポートを使用します。

# firewall-cmd --get-services
... ms-wbt ...

現在のゾーンに「ms-wbt」サービスを追加します。

# firewall-cmd --zone=$ZONE --add-service=ms-wbt

ただし、これは Runtime に設定されただけなので、次回起動時には設定が無くなります。再起動後も有効になるよう Permanent にも設定します。

# firewall-cmd --permanent --zone=$ZONE --add-service=ms-wbt

現在のゾーンに「ms-wbt」サービスが追加されたことを確認します。

# firewall-cmd --list-services --zone=$ZONE
# firewall-cmd --permanent --list-services --zone=$ZONE

SELinux 設定のバグ対応

SELinux 設定のバグがあるようですのでこれに対応します。「/usr/sbin/xrdp」および「/usr/sbin/xrdp-sesman」の 2 つのファイルに関して SELinux コンテキストを変更します。

# chcon -t bin_t /usr/sbin/xrdp /usr/sbin/xrdp-sesman

参考)
https://bugzilla.redhat.com/show_bug.cgi?id=1177202

SELinux Polkit Rule の設定

wheel グループのユーザーでリモートデスクトップに接続した際、いくつか root パスワードを求められるので、これにスキップできるようにします。

# ls /etc/polkit-1/rules.d/
# cat << "EOF" > /etc/polkit-1/rules.d/99-xrdp-remote-desktop.rules
//
// wheel users can network proxy configure
//
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.packagekit.system-network-proxy-configure" && subject.isInGroup("wheel")) {
      return polkit.Result.YES;
  }
});

//
// wheel users can execute xrandr (create a color managed device)
//
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.color-manager.create-device" && subject.isInGroup("wheel")) {
      return polkit.Result.YES;
  }
});

//
// wheel users can execute system-sources-refresh
//
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.packagekit.system-sources-refresh" && subject.active && subject.isInGroup("wheel")) {
      return polkit.Result.YES;
  }
});

//
// wheel users can execute 'systemctl restart xrdp'
//
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.systemd1.manage-units" && subject.active && subject.isInGroup("wheel")) {
      return polkit.Result.YES;
  }
});

//
// wheel users can execute NetworkManager.settings.modify.system
//
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" && subject.isInGroup("wheel")) {
      return polkit.Result.YES;
  }
});
EOF

SELinux Policy の設定

ログイン時に毎回、ABRT によるエラーが報告されるのですが、つぎの SELinux の対応をすることで回避できます。semodule コマンドの実行には時間がかかる場合があります。

# dnf -y install selinux-policy-devel
# mkdir temp
# cd temp
# cat << "EOF" > mypol.te

module mypol 1.0;

require {
        type unconfined_service_t;
        type colord_t;
        class dir search;
        class file { read getattr open };
}

#============= colord_t ==============
allow colord_t unconfined_service_t:dir search;
allow colord_t unconfined_service_t:file { read getattr open };
EOF

# make -f /usr/share/selinux/devel/Makefile mypol.pp
# semodule -i mypol.pp
# cd ..
# rm -rf temp

この問題は以下に報告されているのですが、まだ解決されていないようです。
https://bugzilla.redhat.com/show_bug.cgi?id=1205022

リブートして接続確認

リブートした後、Windows PC から Remote Desktop を使って接続できることを確認してください。Linux から接続する場合は rdesktop、xfreerdp コマンドなどがあります。SELinux はリブートした後は有効になっているはずです。SELinux 関連の処理によりリブートには時間がかかる場合があります。

画面解像度の変更

XRDP によるリモートデスクトップ接続をおこなったとき、デフォルトでは画面の解像度がローカルPCの画面と同じになります。画面の解像度を変更したい場合は、つぎの手順でおこないます。

まずは、ログインしたユーザーアカウントでターミナルを開き、xrandr コマンドを使って接続されているモニターの名前(VNC-0)とサポートされている解像度を確認します。つぎに xrandr コマンドでそのモニター名と解像度を指定して変更します。

$ xrandr
Screen 0: minimum 32 x 32, current 1280 x 1024, maximum 32768 x 32768
VNC-0 connected primary 1280x1024+0+0 0mm x 0mm
   1920x1200     60.00  
   1920x1080     60.00  
   1600x1200     60.00  
   1680x1050     60.00  
   1400x1050     60.00  
   1360x768      60.00  
   1280x1024     60.00* 
   1280x960      60.00  
   1280x800      60.00  
   1280x720      60.00  
   1024x768      60.00  
   800x600       60.00  
   640x480       60.00  

$ xrandr --output VNC-0 --mode 1024x768

デフォルトの解像度の設定

Gnome の設定画面から画面の解像度を変更しても、その内容が保存されないようです。次回のログイン時に元の解像度に戻ってしまいます。ログインのたびに毎回、xrandr コマンドを入力して設定しなおすのは面倒です。これを回避するには、ログイン時に自動的に xrandr コマンドを実行することで可能です。

ユーザーの HOME ディレクトリ下の「.config/autostart/」ディレクトリに「*.desktop」ファイルを作成します。ここでは、「$HOME/.config/autostart/xrandr-setup.desktop」という名前で作成します。この例は解像度を 1024×768 に指定しています。利用状況に合わせて適切に変更してください。

$ mkdir -p $HOME/.config/autostart/

$ cat << "EOF" > $HOME/.config/autostart/xrandr-setup.desktop
[Desktop Entry]
Name=xrandr-setup
GenericName=xrandr-setup
Comment=Screen Resolution for Remote Desktop
Exec=/usr/bin/xrandr --output VNC-0 --mode 1024x768
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
EOF

ログインできない時の対応

リモートデスクトップにログインできなくなったという場合は、ssh でログインして GDM の再起動を試してみてください。

# systemctl restart gdm

以上です。Fedora のリモートデスクトップをお楽しみください。

VMware Workstation 11 Linux 版のインストール

Linux 上に仮想化環境を構築するためには、無料で利用可能な Linux KVM の他に、有償で VMware Workstation を利用することもできます。スナップショットの使い勝手やパフォーマンスの良さ、各種ハイパーバイザーをゲストとしてインストールしたときの安定性などを考えると十分に元が取れる製品です。複数ホストが連携する Cloud 製品のインストール手順確認なども VMware Workstation 上で十分にできます。自分の環境では Linux KVM と VMware Workstation の両方をインストールしています。以下は Fedora 22 にて動作確認しました。

VMware Workstation 11 のインストール準備

VMware Workstation のインストールに必要な依存パッケージを事前にインストールします。

# dnf -y group install "Development Tools"
# dnf -y install kernel-devel kernel-headers

VMware Workstation のダウンロード

以下より VMware Workstation 11 Linux 評価版をダウンロードします。
http://www.vmware.com/products/workstation/workstation-evaluation

VMware Workstation 11 のインストール開始

# chmod a+x ./VMware-Workstation-Full-11.1.2-2780323.x86_64.bundle
# ./VMware-Workstation-Full-11.1.2-2780323.x86_64.bundle

下記のようなエラーメッセージが表示されますが無視して進めます。

Extracting VMware Installer...done.

(vmware-installer.py:28144): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",

(vmware-installer.py:28144): Gtk-WARNING **: Unable to locate theme engine in module_path: "adwaita",
/usr/share/themes/Adwaita/gtk-2.0/gtkrc:1163: error: unexpected identifier `direction', expected character `}'
Gtk-Message: Failed to load module "pk-gtk-module": libpk-gtk-module.so: cannot open shared object file: No such file or directory
Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory

(1)「VMware Workstation – End User License Agreement」の画面が表示されるので、「I accept …」を選択して [Next] ボタンをクリックします。

vmware-01

(2)「VMware OVF Tool component for Linux – End User License Agreement」の画面が表示されるので、「I accept …」を選択して [Next] ボタンをクリックします。

vmware-02

(3)「Would you like to check for product updates on startup?」の画面が表示されるので、「No」を選択して [Next] ボタンをクリックします。

vmware-03

(4)「Would you like to help make VMware software …」の画面が表示されるので、「No」を選択して [Next] ボタンをクリックします。

vmware-04

(5)「Please enter the user that will initially connect to Workstation Server …」の画面が表示されるので、「root」を変更して通常ログインして使用するユーザー名を入力します。[Next] ボタンをクリックしてつぎに進みます。

vmware-05

(6)「Please choose a directory for your shared virtual machines.」の画面が表示されるので、特に変更しないで、[/var/lib/vmware/Shared VMs]のまま[Next] ボタンをクリックしてつぎに進みます。

vmware-06

(7)「Please enter the port to use for https access to Workstation Server.」の画面が表示されるので、HTTPS port: [443] を適切に変更して [Next] ボタンをクリックしてつぎに進みます。

vmware-07

(8)「Enter license key.」の画面が表示されるので、空白のまま [Next] ボタンをクリックしてつぎに進みます。

vmware-08

(9)「The product is ready to installed.」の画面が表示されるので、[Install] ボタンをクリックしてつぎに進みます。

vmware-09

(10)「Installing …」の画面が表示されるので、完了するまで待ちます。

vmware-10

(11)「Installation was successful.」の画面が表示されるので、[Close] ボタンをクリックします。

vmware-11

インストールが完了した後、VMware Workstation を起動すると、初回に license key を入力するか、入力しないまま30日の評価期間として利用を続けるかを聞かれますので、いずれかを選択します。license key の入力は後からいつでも入力可能です。また license key を入力しなくても評価期間内であればフル機能が利用できます。

VMware Workstation には仮想マシンを接続するネットワークとしてデフォルトで3種類が用意されています。vmnet0 (Bridged)、vmnet1 (host-only)、vmnet8 (NAT)です。

仮想マシンを vmnet0 (Bridged) に接続すると、その仮想マシンを VMware ホストの外部のネットワークに接続することができます。vmnet1 (host-only) は VMware ホストとのみ接続されているプライベートなネットワークです。主に外部との接続を遮断したセキュアな環境で作業したいときに利用します。vmnet8 (NAT) は VMware が自動で用意してくれる仮想的な NAT ルータを通して外部と接続できるプライベートなネットワークです。NAT ルータの Gateway のアドレスは末尾が「.2」で固定されています。その他、vmnet2〜7、vmnet9〜 を自分でカスタムに定義することで自由なネットワークの構築が可能です。

VMware Workstation を最初に起動したら、メニューから「Edit > Virtual Network Editor」を選択して、「vmnet1 (host-only)」および「vmnet8 (NAT)」のネットワークアドレスを自分が使いやすい値に変更したほうが良いでしょう。

例えば、vmnet1 (host-only) ネットワークのネットワークアドレスを 192.168.10.0/24 に設定した場合、末尾が「.1」の IP アドレスすなわち 192.168.10.1 が VMware ホスト側に割り当てられ、それ以外の IP アドレスはゲストに割り当てることができます。

また、vmnet8 (NAT) ネットワークのネットワークアドレスを 192.168.20.0/24 に設定した場合、末尾が「.1」の IP アドレスすなわち 192.168.20.1 がホスト側に割り当てられ、末尾が「.2」の IP アドレスすなわち 192.168.20.2 が NAT ルータの Gateway に割り当てられ、それ以外の IP アドレスはゲストに割り当てることができます。ゲストは NAT ルータの Gateway と通して外部との通信が可能です。

VMware Workstation 11 のドキュメントは以下の URL に公開されています。
http://pubs.vmware.com/workstation-11/index.jsp