CentOS 7設定メモ
サーバにCentOS 7をインストールしたので、メモを残しておく。
ネットワーク
あぁ、インタフェース名がenp6s0とかenp7s0になっているね。それぞれのPCI IDは06:00.0と07:00.0。
管理ツールはNetwork Administration Toolがなくなり、Network Managerに一本化されたそうな。今まではインストール後速攻に削除していたけど、使ってみるか。Network Managerではネットワーク設定をコネクションという概念で抽象化しているけど、一番単純なケースはインタフェース=コネクション。
設定ファイル自体は/etc/sysconfig/network-scripts/ifcfg-<コネクション名>なのは一緒。ターミナルから使えるコマンドは、nmtuiとnmcli。
$ nmcli c sh # コネクション一覧表示 $ nmcli d sh enp6s0 # デバイスenp6s0の情報表示
SSH
sshd_configを編集して、サービスを有効にしておく。
$ sudo systemctl start sshd.service $ sudo systemctl enable sshd.service
ファイアウォール
iptablesサービスの代わりにfirewalldが導入されている。内部的にはiptablesコマンドでnetfilterの設定を行っている。
ゾーンってのがあるね。デフォルトはpublic。/usr/lib/firewalld/zones以下にゾーン毎の設定が記述されたXMLファイルがある。これによるとsshとdhcpv6-clientだけ許可するようだ。
$ sudo firewall-cmd --get-default-zone public $ sudo firewall-cmd --get-active-zone public interfaces: enp6s0
例えば、80番ポートを通すために、ゾーンにサービスを追加する場合は、こんな感じ(--permanentオプションを付けると再起動後も有効になる)。
$ sudo firewall-cmd --add-service=http --zone=public --permanent
クラスタを作るには、外部用をexternal、内部用をinternalにするとよいかな。externalにはデフォルトでmasqueradeの設定が入っている。
Rich rulesという感じで、iptablesの記法で指定することもできるとのこと。
NFS
/homeをクラスタ内で共有する。まずはNFSサーバ側の設定。
$ cat /etc/exports /home 192.168.0.0/24(rw)
systemdの設定。nfs-server.serviceとnfs-lock.serviceを起動する。
$ sudo systemctl enable nfs-server.service nfs-lock.service $ sudo systemctl start nfs-server.service nfs-lock.service
デフォルトではNFS関係のパケットはファイアウォールを通過できないので、ルールを変更する。
$ sudo firewall-cmd --add-service=nfs --permanent $ sudo firewall-cmd --add-service=mountd --permanent $ sudo firewall-cmd --add-service=rpc-bind --permanent $ sudo firewall-cmd --reload $ sudo firewall-cmd --list-all public (default, active) interfaces: enp5s0 enp6s0 virbr0 sources: services: dhcpv6-client mdns mountd nfs rpc-bind ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
あとはクライアント側の/etc/fstabを修正する。
172.168.0.1:/home /home nfs rw,hard,intr,rsize=32768,wsize=32768,async 0 0
このままではmountできない。SELinuxの設定が必要なようだ。ということで、/etc/selinux/configを編集して無効化。。。
QEMU/KVM
CentOS 7で採用されているバージョンは、QEMU/KVMが1.5.3、libvirtが1.1.1。
vagrantとか使っていると、面倒くさいなと感じてしまうが、ISOイメージをダウンロードして、virt-installでゲストOSをインストールする。CLIで済ます。
$ sudo yum install qemu-kvm libvirt virt-install $ sudo systemctl enable libvirtd.service $ sudo systemctl start libvirtd.service
$ qemu-img create -f qcow2 /data/images/guest1-centos7.img 8G $ sudo virt-install --name=guest1-centos7 --hvm --virt-type=kvm \ --disk path=/data/images/guest1-centos7.img,format=qcow2 --graphics none \ --vcpus=2 --ram=2048 --location=/data/iso/CentOS-7.0-1406-x86_64-Minimal.iso \ --network bridge=virbr0 --os-type=linux --os-variant=rhel7 \ --extra-args='console=tty0 console=ttyS0,115200n8'
久々にやったらパラメータ間違えて途中で止まって中途半端な状態に。その場合は、
$ sudo virsh undefine guest1-centos7
で消去してやり直す。
以下はオプショナルな設定。
Nested VMXを実行する場合は、次のファイルを用意して、kvm_intelモジュールをリロードする。
$ cat /etc/modprovbe.d/kvm-nested.conf options kvm_intel nested=1
libvirtの方は、最低限VMXのfeature bitだけを立てればいいが、CPUモードをhost-passthroughにしてもOK。ただ、host-passthroughは安定している雰囲気ではないので、お勧めしない。
<cpu mode='host-passthrough'/>