SSブログ

KVMでの仮想環境の構築 [CentOS]

テストのため、Linux サーバーが 3 台必要となり、KVM を使用した仮想化で対応した。
詳細は、以下の通りである。

1. ソフトウェアのバージョン


(1) KVM (on CentOS 7.2)


qemu-kvm-1.5.3-105.el7_2.3.x86_64
libvirt-1.2.17-13.el7_2.3.x86_64
bridge-utils-1.5-9.el7.x86_64


(2) 仮想マシンマネージャー (on CentOS 7.2)


virt-manager-1.2.1-8.el7.noarch


(3) ゲスト OS


centos-6.7


(補足)
・KVM ホストとするノードは、物理サーバーとして使用していたサーバーである。
・CentOS 7.2/6.7 とも、NetworkManager は使用しない(無効化する)。


2. 実施手順


(1) パッケージのインストール

# yum install qemu-kvm libvirt virt-install bridge-utils
# yum install virt-manager


(2) 仮想ディスク用の領域の確保


/var/lib/libvirt/images に十分な空き容量がない場合、下記の手順を実施する。

・/var/lib/libvirt/images 用のパーティションを作成する。
・上記パーティションを /var/lib/libvirt/images にマウントする。


3. ネットワークの設定

3-1. ブリッジ・インターフェースの作成


外部からのゲスト OS への接続を可能にするため、ブリッジ I/Fを作成する。

(1) /etc/sysconfig/network-scripts/ifcfg-br0 の編集


(a) ifcfg-br0 の作成


ifcfg-enp2s0 を複製し、ifcfg-br0 を作成する。


(b) ifcfg-br0 の編集


下記のように変更する。

・TYPE
 Ethernet → Bridge
・NAME
 enp2s0 → br0
・DEVICE
 enp2s0 → br0
・UUID の設定のコメント化
・MAC アドレスの設定のコメント化


(2) /etc/sysconfig/network-scripts/ifcfg-enp2s0 の編集


(a) 設定の追加


BRIDGE=br0


(b) 設定の削除(またはコメント化)


UUID の設定
IP アドレス/サブネットマスクの設定
デフォルト・ゲートウェイの設定
DNS の設定


(3) ネットワークの再起動

# systemctl restart network


・br0 に指定した IP アドレスが設定され、UP となっていること。
・enp2s0 が存在し、UP となっていること。


(4) ブリッジ・インターフェースの確認

# brctl show


・br0 が存在し、interface が eth0 であること。


3-2. カーネル・パラメーターの設定


(1) カーネル・パラメーターの設定


/etc/sysctl.conf に下記の設定を追加する。

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0


(2) 設定の反映

# sysctl -p /etc/sysctl.conf

4. virt-manager のための設定


(1) root 以外で virt-manager を実行する場合の設定


該当するユーザーを libvirt グループのメンバーに追加する。


5. 仮想マシンの作成とゲスト OS のインストール


(1) virt-manager の起動

% virt-manager


GNOME の場合には、メニューから起動可能である。
・[アプリケーション] -> [システムツール] -> [仮想マシンマネージャー]


(2) 仮想マシンの作成


[QEMU/KVM] を右クリックし、[新規] を選択する。

・VM 作成時に、ゲスト OS のインストールを行う。
・ネットワークの選択では、Bridge br0 を選択する。


6. ゲスト OS の設定


(1) パッケージの追加


(a) acpid


virt-manager からのリブート/シャットダウンを行うために追加する。
また、インストール後、下記のコマンドを実行する。

# chkconfig acpid on
# /etc/init.d/acpid start


(b) ntp


/etc/ntp.conf の編集後、下記のコマンドを実行する。

# chkconfig ntpd on
# /etc/init.d/ntpd start


(2) シリアルコンソールの設定


/boot/grub/grub.conf を編集する。

(a) 下記の設定を追加する。

・serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
・terminal --timeout=5 serial console


(b) カーネルの起動オプションに、下記のオプションを追加する。

console=tty0 console=ttyS0,115200


(補足)
115200 は 115200n8 と同意
・115200: 通信速度(bps)
・n: パリティなし (デフォルト値)
・8: データビット数 (デフォルト値)
・"": フロー制御なし (デフォルト値、r: フロー制御あり)


7. VM の複製


(1) 複製元の VM の停止


virt-manager で当該 VM を停止する。


(2) VM の複製


(a) virt-clone コマンドを使用する場合

# virt-clone -o <org_guest_name> -n <new_guest_name> -f <new_disk_file>


(b) virt-manager を使用する場合


・既存のゲスト OS を選択し、右クリックで、[クローン] を選択する。
・クローン先の名前、ストレージのパスを入力する。
・[クローン] を選択し、処理を開始する。


(3) ゲスト OS の IP アドレス、ホスト名の変更


複製した VM を起動し、ゲスト OS の IP アドレス、ホスト名を変更する。
編集するファイルは、下記の通りである。

・/etc/udev/rules.d/70-persistent-net.rules
・/etc/sysconfig/network-scripts/ifcfg-eth0
・/etc/sysconfig/network
・/etc/hosts


8. その他


(1) virtbr0 の停止


NAT を使用しないため、virtbr0 の自動起動を無効化する。

・virt-manager を起動する。
・メニューから [Edit] -> [Connection Details] を選択する。
・[Virtual Networks] を選択する。
・[default] の [Autostart] のチェックを外す。


(2) シリアルコンソールの使用方法


(a) 接続の開始


・root でログインする(または su する)。
・virsh console <domain-name> を実行する。
・Enter キーを押下する。
・ユーザー名、パスワードを入力する。


(b) 接続の終了


・ログインシェルからログアウトする。
・Ctrl + ] を押下する。



CentOS 7でMewのSSLでのメール送信ができない [CentOS]

CentOS 7.1/7.2 において、Mew の SSL でのメール送信ができない状況となってしまい、その対応を行った。

[ソフトウェアのバージョン]
・emacs-mew-6.3-2.fc15.x86_64
・emacs-mew-el-6.3-2.fc15.x86_64
・openssl-1.0.1e-42.el7.9.x86_64
・stunnel-4.56-4.el7.x86_64

詳細は、以下の通りである。

1. 発生事象


Mew の SSL でのメール送信ができない。

・"Creating an SSL/TLS connection..." が出力された状態から進まない。
・メールサーバーによっては、サーバー証明証の検証エラーとなる。
 ("Cannot create to the SSL/TLS connection" と出力される。)
・送信時に stunnel のプロセスは生成される。
・SSL を使用しない場合には、正常に送信できる。

(補足)
・CA root 証明書は、下記パッケージの当該ファイルを抜き出して使用している。
 ca-certificates-mozilla-1.76-1.3.1.noarch.rpm(openSUSE 11.3 のパッケージ)
・CentOS 6 でも同様の事象が発生する。


2. 対処方法


CentOS 6 の場合と同様に、下記の手順を実施する。


2-1. サーバー証明証の検証エラーへの対応


下記の手順を実施し、CA root 証明書を更新する。


(1) 古いファイルの削除


(a) ユーザー所有のファイル(hash リンク)

% rm -fr ~/.certs


(b) システム単位のファイル

% su
# rm -fr /usr/share/ca-certificates/mozilla


(2) パッケージのダウンロード


openSUSE 13.1 の下記パッケージをダウンロードする。
・ca-certificates-mozilla-2.2-3.17.1.noarch.rpm


(3) ファイルの抜き出しとインストール

# rpm2cpio ca-certificates-mozilla-2.2-3.17.1.noarch.rpm | cpio -id
# mv usr/share/pki/trust /usr/share/ca-certificates/mozilla


(4) hash リンクの作成

% mkdir ~/.certs
% cd ~/.certs
% for i in /usr/share/ca-certificates/mozilla/*.pem
> do
> ln -s $i `openssl x509 -hash -noout -in $i`.0
> done

2-2. SSL での送信エラーへの対応


下記の手順を実施し、stunnel のバージョンダウンを行う。


(1) パッケージのダウンロード


CentOS 6.6 の下記のパッケージをダウンロードする。
・stunnel-4.29-3.el6_4.x86_64.rpm


(2) パッケージのダウンロード

# rpm --oldpackage -Uvh stunnel-4.29-3.el6_4.x86_64.rpm


CentOS 7.2でのibus-1.5.10へのアップデート [CentOS]

CentOS 7.2 において、IBus のブロパティパネルを使用するために、ibus-1.5.10 へのアップデートを行った。
詳細は、以下の通りである。

1. パッケージのダウンロード


Fedora 20 から下記のパッケージをダウンロードする。
(updates パッケージが存在する場合には、そちらを使用する。)

(1) IBus のパッケージ (ibus-1.5.10/)


ibus-1.5.10-5.fc20.x86_64.rpm (updates)
ibus-anthy-1.5.6-6.fc20.x86_64.rpm (updates)
ibus-anthy-python-1.5.6-6.fc20.noarch.rpm (updates)
ibus-gtk2-1.5.10-5.fc20.x86_64.rpm (updates)
ibus-gtk3-1.5.10-5.fc20.x86_64.rpm (updates)
ibus-libs-1.5.10-5.fc20.x86_64.rpm (updates)
ibus-setup-1.5.10-5.fc20.noarch.rpm (updates)
ibus-wayland-1.5.10-5.fc20.x86_64.rpm (updates)


(2) 依存パッケージ (ibus-1.5.10/addtional/)


libwayland-client-1.2.0-3.fc20.x86_64.rpm
libxkbcommon-0.4.3-2.fc20.x86_64.rpm (updates)
python3-3.3.2-19.fc20.x86_64.rpm (updates)
python3-cairo-1.10.0-6.fc20.x86_64.rpm
python3-gobject-3.10.2-1.fc20.x86_64.rpm
python3-libs-3.3.2-19.fc20.x86_64.rpm (updates)


2. パッケージのインストール


(1) 依存パッケージのインストール

# cd ibus-1.5.10/addtional/
# rpm -Uvh *.rpm


(2) IBus のパッケージのインストール

# cd ..
# rpm -Uvh *.rpm

3. 設定


(1) プロパティパネルを表示するための設定


下記の手順を実施する。

・ibus-setup を実行
・[General] タブを選択
・[Font and Style] で [Show property panel] のスタイルを選択
 ([Hide automatically] または [Always] を選択)
・ibus-setup を終了


(2) プロパティパネルの表示位置


下記のように固定されており、変更できない。
ただし、手動での一時的な移動は可能である。

・[Always] の場合: -0+0
 常に表示

・[Hide automatically] の場合: 入力位置の下側
 表示: ウィンドウを選択/再選択、入力モードを変更
 非表示: 入力を開始、しばらく待つ

 (補足)
 当該ウィンドウのクローズ後、即時または数秒後に非表示になる。


(3) その他


プロパティパネルを表示するコマンドは、/usr/libexec/ibus-ui-gtk3 である。
(ibus-1.5.10-5.fc20.x86_64 で提供される。)


4. 備考


更新されるパッケージは、下記の通りである。

## 追加されるパッケージ
ibus-1.5.10-5.fc20.x86_64
ibus-anthy-1.5.6-6.fc20.x86_64
ibus-anthy-python-1.5.6-6.fc20.noarch
ibus-gtk2-1.5.10-5.fc20.x86_64
ibus-gtk3-1.5.10-5.fc20.x86_64
ibus-libs-1.5.10-5.fc20.x86_64
ibus-setup-1.5.10-5.fc20.noarch
ibus-wayland-1.5.10-5.fc20.x86_64
libwayland-client-1.2.0-3.fc20.x86_64
libxkbcommon-0.4.3-2.fc20.x86_64
python3-3.3.2-19.fc20.x86_64
python3-cairo-1.10.0-6.fc20.x86_64
python3-gobject-3.10.2-1.fc20.x86_64
python3-libs-3.3.2-19.fc20.x86_64

## 削除されるパッケージ
ibus-1.5.3-13.el7.x86_64
ibus-anthy-1.5.6-2.el7.x86_64
ibus-anthy-python-1.5.6-2.el7.noarch
ibus-gtk2-1.5.3-13.el7.x86_64
ibus-gtk3-1.5.3-13.el7.x86_64
ibus-libs-1.5.3-13.el7.x86_64
ibus-setup-1.5.3-13.el7.noarch


CentOS 7.2の不具合 [CentOS]

先日、CentOS 7.1 を複製し、CentOS 7.2 へのアップデートを行った。
その後、幾つかのパッケージの更新を行ったが、現時点で以下の不具合が発生する。
(いずれの事象も、CentOS 7.1 では発生しない。)

1. X Window System で、一部の画像が正しく表示されない。


一部の画像に横方向の隙間が挿入され、不連続な表示となってしまう。
また、再描画で一時的に回復できても、すぐに再発する。

(補足)
GNOME (3.14) で頻繁に発生する。
・[アプリケーション] -> [ユーティリティ] -> [Tweak Tool]
・Firefox のロゴ


2. GNOME (3.14) において、 IBus で使用する IME の優先順位が考慮されない。


['anthy'、'xkb:jp::jpn'] の順に設定しても、起動時に anthy が自動選択されない。
(毎回、選択が必要となる。)

(補足)
・FVWM では、起動時に優先順位の最も高い IME が自動選択される。
・CentOS 7.1 の GNOME (3.8) では、FVWM と同様の動作をする。


3. ブートが途中で止まってしまうことがある。


エラー・メッセージは特に出力されない。
また、リブート/シャットダウンでも同様の事象が発生する。

(補足)
下記のカーネルで発生する。
・kernel-3.10.0-327.3.1.el7.x86_64
・kernel-3.10.0-327.4.5.el7.x86_64
・kernel-3.10.0-327.10.1.el7.x86_64


[追記]


CentOS 7.1へのuim-anthyの導入 [CentOS]

CentOS 7.1 で GNOME(classic mode) と fvwm を併用しているが、fvwm 上での IBus が使いづらいため、uim-anthy の導入を行った。
実施手順は、以下の通りである。

1. 依存パッケージのインストール


(1) eb

# rpm -ivh eb-4.4.3-1.fc20.x86_64.rpm


(2) im-chooser

# yum install im-chooser.x86_64 im-chooser-common.x86_64

2. uim-anthy のインストール


(1) 必要なパッケージのダウンロード


・libgcroots-0.2.3-6.fc20.x86_64.rpm
・uim-1.8.6-3.fc20.x86_64.rpm
・uim-anthy-1.8.6-3.fc20.x86_64.rpm
・uim-gtk2-1.8.6-3.fc20.x86_64.rpm
・uim-gtk3-1.8.6-3.fc20.x86_64.rpm


(2) パッケージのインストール

# rpm -ivh *.rpm

3. 備考


(1) 導入後の不具合


Firefox において、メニューバーからプルダウン・メニューを表示できないことがある。

・発生頻度は、非常に低い。
・scim-anthy でも同様の状況が発生する。
 cf. http://dan-project.blog.so-net.ne.jp/2015-10-04


[追記]


CentOS 7.1でのibus-kkcからscim-anthyへの変更 [CentOS]

CentOS 7.1 で GNOME(classic mode) と fvwm を併用しているが、fvwm 上での IBus が使いづらい(日本語入力モードかどうかを表示できない)。
このため、ibus-kkc/ibus-anthy から scim-anthy への変更を行った。
実施手順は、以下の通りである。

1. IBus の停止
# killall ibus-daemon

2. IBus および kkc 関連のパッケージのアンインストール
# yum remove ibus
# yum remove libkkc*

3. scim-anthy の依存パッケージのインストール
# yum install im-chooser.x86_64 im-chooser-common.x86_64
# yum --enablerepo=epel install kasumi.x86_64

4. scim-anthy 関連のパッケージのインストール


(1) パッケージのダウンロード


下記のファイル(Fedora 18 のパッケージ)をダウンロードする。

・scim-1.4.14-3.fc18.x86_64.rpm
・scim-anthy-1.2.7-8.fc18.x86_64.rpm
・scim-bridge-0.4.16-11.fc18.x86_64.rpm
・scim-bridge-gtk-0.4.16-11.fc18.x86_64.rpm
・scim-libs-1.4.14-3.fc18.x86_64.rpm


(2) パッケージのインストール

# rpm -ivh *.rpm

5. SCIM の設定

5-1. SCIM の起動


デフォルト設定で SCIM が起動されない場合には、下記のいずれかの手順を実施する。

(1) ~/.xinitrc または ~/.Xclients への設定の追加

# start Input Method
imsettings-switch -n -q -x


(2) ~/.xinputrc の作成

ps cx | grep -w scim >/dev/null 2>&1
if [ $? != 0 ]; then
    export XMODIFIERS="@im=SCIM"
    export GTK_IM_MODULE=scim
    export QT_IM_MODULE=scim
    /usr/bin/scim -d
fi


設定の変更後に、X Window System を再起動する。


5-2. SCIM 入力メソッドの設定


(1) 設定ウィンドウの表示


・Ctrl + Space を押下し、SCIM ツールバーを表示する。
・SCIM ツールバーのアイコンを右クリックし、[SCIM を設定] を選択する。


(2) ホットキーの追加


[フロントエンド] -> [全体設定] を選択し、ホットキーを追加する。

・[半角/全角]、Alt + [半角/全角]


(3) その他の設定


必要に応じて、設定を変更する。


(4) 設定の終了


[適用]、[OK] の順に選択する。


6. Firefox の設定


Firefox だけで日本語入力ができない場合には、下記の設定を試してみる。

export GTK_IM_MODULE=xim

[追記]


CentOS 7.1上のGNOME 3.8.4のパネルで使用するフォントの変更 [CentOS]

CentOS 7.1 上の GNOME 3.8.4(classic mode) のパネルでフォントが綺麗に表示できない。
anti-alias を有効にすればある程度綺麗に表示できるが、できれば anti-alias を有効にしたくない。

以下は、この状況で、パネルの表示をある程度綺麗にするための対応方法である。

1. Sazaname フォントの導入


(1) フォント・データのダウンロード


・URL
 https://osdn.jp/projects/efont/

・file
 sazanami-20040629.tar.bz2


(2) フォント・データのインストール


・フォント・データの展開

# tar jxvf sazanami-20040629.tar.bz2


・フォント・データのインストール

# mkdir /usr/share/fonts/sazanami
# cd sazanami-20040629
# mv *.ttf /usr/share/fonts/sazanami

2. フォントパスの追加


(1) /etc/fonts/local.conf の編集


/etc/fonts/local.conf に下記の設定を追加する。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <!-- Font directory list -->
    <dir>/usr/share/X11/fonts</dir>
</fontconfig>


(2) X Window System の再起動


3. /usr/share/gnome-shell/theme/gnome-shell.css の編集


下記のように変更する。

# diff gnome-shell.css gnome-shell.css.org
24,25c24
<     /*font-family: cantarell, sans-serif;*/
<     font-family: "Sazanami Gothic", monospace;
---
>     font-family: cantarell, sans-serif;
468,469c467
<     /*font-weight: bold;*/
<     font-weight: medium;
---
>     font-weight: bold;
1377,1378c1375
<     /*font-family: cantarell, sans-serif;*/
<     font-family: "Sazanami Gothic", monospace;
---
>     font-family: cantarell, sans-serif;


CentOS 7.1のGNOME 3.8.4でのAlt+[半角/全角]のキーバインド [CentOS]

CentOS 7.1 の GNOME 3.8.4 では、Alt + [半角/全角] が別の機能へキーバインドされており、かつ、キーボードのショートカットの設定からは、Alt + [半角/全角] のキーバインドを無効化できない。

・キーボードのショートカットの設定: [設定] -> [キーボード] -> [ショートカット]
・このままでは Alt + [半角/全角] での日本語入力の開始/終了を行うことができない。

GNOME での当該キーのキーバインドを無効化するには、下記の手順の実施が必要である。

1. dconf エディタの起動


[アプリケーション] -> [諸ツール] -> [dconf エディタ]


2. GNOME のキーバインドの変更


(1) org -> gnome -> desktop -> wm -> keybindings

(2) switch-group の設定値の変更

(変更前) ['<Super>Above_Tab', '<Alt>Above_Tab']
(変更後) ['<Super>Above_Tab']


gnome-terminal起動時のエンコーディングの指定 [CentOS]

CentOS 7.1 の gnome-terminal では、起動時のエンコーディングの指定ができなくなった。
発生事象の詳細と対処方法は、以下の通りである。

1. 発生事象


CentOS 7.1 の gnome-terminal では、起動時のエンコーディングが指定できなくなった。
バージョンアップにより、仕様が変更されたものと思われる。

・gnome-terminal-3.8.4-8.el7.x86_64
・UTF-8 エンコーディングで起動される。
・起動後の変更は可能である。

CentOS 6.7 では、ロケールを指定することで対応できていた。

・gnome-terminal-2.31.3-11.el6_6.i686

(例) EUC-JP エンコーディングを指定する場合
env LC_ALL=ja_JP.eucJP LANGUAGE=ja_JP.eucJP gnome-terminal

2. 対処方法


下記の手順により、gnome-terminal を Fedora 18 のパッケージに置き換える。

(1) パッケージのダウンロード


gnome-terminal-3.6.1-1.fc18.x86_64.rpm


(2) gnome-terminal のバージョンダウン

# rpm --oldpackage -Uvh gnome-terminal-3.6.1-1.fc18.x86_64.rpm

[追記]


firewalldでの複数の条件を組み合せたルールの作成 [CentOS]

CentOS 7.1 の firewalld の設定で、複数の条件を合わせたルールの作成(例えば、ポートとアドレスの指定)に手間取ったため、得られた情報をまとめてみた。
詳細は、以下の通りである。

1. ルールの作成方法


下記のいずれかの機能を使用する。

(1) direct option

(例)
# firewall-cmd [--permanent] --direct --add-rule ipv4 filter INPUT 0 ...


iptables にルールを直接設定するようなものである。
(詳細は firewall-cmd(1) の man ページを参照)


(2) rich rule

(例)
# firewall-cmd --add-rich-rule='rule family="ipv4" ...'


リッチ言語表現を使用したルール設定である。

指定できる主な項目は、下記の通りである。
(リッチ表現の詳細は、firewalld.zone(5) の man ページを参照)

(a) family

設定値: ipv4 | ipv6
指定方法: family="<value>"


(b) source address

設定値: <address>[/<range>]
指定方法: source address="<value>"


(c) destination address


source address と同様


(d) port

設定値: {<port>[-<port>]} {tcp | udp}
指定方法: port port="<value_1>" protocol="<value_2>"


(e) action

設定値: accept | reject | drop
指定方法: <value>

2. 使用例


ローカルネット(192.168.0.0/24) からの rsh でのアクセスを許可する。

(1) direct option を使用する場合


(a) 設定

# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 \
-s 192.168.0.0/24 -p tcp --dport 513:514 -j ACCEPT
success


(b) 追加されるルール

# iptables -L
Chain INPUT_direct (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.0.0/24       anywhere      tcp dpt:login:shell


(c) 補足


ルールの削除は、--add-rule を --remove-rule に変更して実行する。


(2) rich rule を使用する場合


(a) 設定

# firewall-cmd --add-rich-rule='rule family="ipv4" \
source address="192.168.0.0/24" port port="513-514" protocol="tcp" \
accept'
success


(b) 追加されるルール

# firewall-cmd --list-all
public (default, active)
  interfaces: enp2s0
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:
        rule family="ipv4" source address="192.168.0.0/24" \
        port port="513-514" protocol="tcp" accept


(c) 補足


ルールの削除は、--add-rich-rule を --remove-rich-rule に変更して実行する。


3. 備考


(1) 参考情報


https://access.redhat.com/documentation/ja-JP/\
Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html


(2) 感想


通常は、iptables を使用(firewalld の無効化が必要)した方がよいように思われる。
http://dan-project.blog.so-net.ne.jp/2015-09-12-1



この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。