KVMでの仮想環境の構築 [CentOS]
詳細は、以下の通りである。
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]
[ソフトウェアのバージョン]
・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]
詳細は、以下の通りである。
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 では発生しない。)
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]
実施手順は、以下の通りである。
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]
このため、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]
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]
・キーボードのショートカットの設定: [設定] -> [キーボード] -> [ショートカット]
・このままでは 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]
発生事象の詳細と対処方法は、以下の通りである。
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]
詳細は、以下の通りである。
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