待望のCentOS7.0がredhat enterprise linux7.0に遅れる事1か月余りでリリースされたので早速インストールを行います。その前に当たり前のようにリリースノートを確認し、気になった変更点を列記します。
- カーネル3.10系の採用
- デフォルトで選択されているインストールが『最小限のインストール』になった。そのままインストールすると、ifconfigコマンドすら入っていない。
- デスクトップはGNOMEがメインになった(KDEも選択可能)。
- systemd採用で起動処理が速くなった(sysvinitやupstart等の置き換え)
- firewallの設定はfirewall-cmd、firewall-configになった。これらのコマンドの後ろでiptablesが設定される。
- 古いハードウェアがサポート外になった。100MbpsのNICや3wareの古いRAIDカード等。smartarray P400等もサポート外になったので、ヤフオクで安く買っても使えないと思います。
- デフォルトのファイルシステムがXFSになった。ext4やBtrfsも選択可能。
- ブートローダがGRUB2へ。/boot/grub/menu.confを直に書き換えちゃダメ。
- 仮想化周りが最新のものに置き換わった。
- ruby2.0、python2.7.5、openjdk7、gcc-4.8.x
- samba4.1(samba大好きなので書きました。ADに参加できたりします。)
- Apache2.4、MariaDB5.5、PostgreSQL9.2(MySQL ServerはMariaDBに置き換えられたが、mysql用に書かれたプログラムは利用可能。LAMP環境下にepgrecを入れてみた投稿参照)
yumでパッケージをインストールして普通に使う分には気になりませんが、サービスのON・OFFの切り替えやファイアウォールの設定方法は、CentOS6から様変わりしています。最初のうちはmanコマンドでマニュアルを引きながら設定する事になりそうです。○○をしたいなどの希望があれば、コメント欄からどうぞ。簡単な事なら投稿にするなり回答するなりします。
ダウンロードはCentOSのダウンロード画面より。リリースノートはたとえ英語でもざっと目を通すと良いです。
ISOをダウンロードしたら、DVDに焼き付けてインストールします。DVDからブートできなければ、BIOSのブート順を見直してください。
CentOS7のDVDからブートすると、上記のようなインストール画面になります。赤枠のinstall CentOS 7を選択します。
言語は日本語を選びます。
CentOS7のインストーラは便利になっていて、上記のような画面でインストール時の設定を行えます。基本的に日本語を選んでいれば、殆ど適切な設定がされているはずですが、必要に応じて、キーボードなどを変更してください。今回はソフトウェアの選択から、インストール構成を変更しています。
最小限のインストールから初めてもOKですが、今回は開発及びクリエイティブワークステーションを選びました。DESKTOPも一緒に入るので、インストールにはそれなりに時間がかかります。20分ぐらいですかね。
ネットワークとホスト名を事前設定しておきます。
赤枠のネットワークのON/OFFでONにしておきます。また、赤枠を付けていませんが、左下にホスト名、右下に詳細設定があります。無線LANの設定等もここから行ってください。
事前設定が終わったらインストール開始をクリックします。
インストール中に、rootと一般ユーザーのセットアップが出来ますので、それらの設定を済ませておきます。
まずはrootのパスワード設定。それなりに組み合わせたパスワードを選択したつもりでしたが、強度は『普通』なんですね。覚えられる範囲で設定してください。
一般ユーザーも設定しておきます。
ユーザー設定を行っている間も、インストーラは後ろでインストール作業を着々と進めてくれます。
まだインストール中・・・
インストールが完了したら再起動。
ライセンス情報をクリックしてライセンスに同意します。
ライセンスに同意。
設定の完了を押します。
Kdumpを使うかと聞かれるので、そのまま進む。dump、あんまり見る事無いですけどね。
ログイン画面。新しい感じがします。
パスワードを入れてサインイン。
インストール中に設定したはずですが、言語を再度聞かれるので、日本語を選択して次へ。
入力ソースは日本語で良いので、次へ。
クラウド上にデータを格納していないので、アカウント追加をせずに次へ。
start using CentOS Linuxを押す。
GUI画面はこんな感じです。
取りあえず、お決まりのパッケージの更新。
sudo yum update
CentOSになってから、サービスの起動周りが結構変更になっています。chkconfig –listの実行結果。
chkconfig --list 注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。 systemd services. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。 systemd サービスを一覧表示するには 'systemctl list-unit-files' を使用してください。 特定のターゲットにおいて有効化されているサービスを確認するには、 'systemctl list-dependencies [target]' 。 iprdump 0:off 1:off 2:on 3:on 4:on 5:on 6:off iprinit 0:off 1:off 2:on 3:on 4:on 5:on 6:off iprupdate 0:off 1:off 2:on 3:on 4:on 5:on 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off pmcd 0:off 1:off 2:off 3:off 4:off 5:off 6:off pmie 0:off 1:off 2:off 3:off 4:off 5:off 6:off pmlogger 0:off 1:off 2:off 3:off 4:off 5:off 6:off pmmgr 0:off 1:off 2:off 3:off 4:off 5:off 6:off pmproxy 0:off 1:off 2:off 3:off 4:off 5:off 6:off pmwebd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig は既に過去のものになっているとのこと。今後はsystemctlコマンドを使うのが正しいと言われたのでそうします。
systemctl list-unit-files # UNIT FILE STATE # proc-sys-fs-binfmt_misc.automount static # dev-hugepages.mount static # dev-mqueue.mount static ..... ..... # list-dependenciesだとツリー状に見れる。 systemctl list-dependencies # default.target # ├─accounts-daemon.service # ├─gdm.service # ├─iprdump.service # ├─iprinit.service # ├─iprupdate.service # ├─network.service # ├─rtkit-daemon.service # ├─systemd-readahead-collect.service # ├─systemd-readahead-replay.service # ├─systemd-update-utmp-runlevel.service # └─multi-user.target # ├─abrt-ccpp.service # ├─abrt-oops.service # ├─abrt-vmcore.service # ├─abrt-xorg.service # ├─abrtd.service # ├─atd.service ..... .....
リスト表示させると沢山出てきます。取りあえず、需要の多そうなファイアウォールの無効化をして、サービスの無効化の仕方を確認してみます。
※ ファイアウォールの無効化は自己責任で行ってください。グローバルIPから直にアクセス可能な状況下では絶対に無効にしないでください。ルータの下でIPマスカレードしているなら・・・・まぁ・・・・良いんじゃないですかね(本当は良くない)。
# 最初に、firewallサービスを探す。 systemctl list-unit-files | grep firewall # firewalld.service enabled # firewalld.serviceだと解ったので、disableする。 systemctl disable firewalld.service # rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' # rm '/etc/systemd/system/basic.target.wants/firewalld.service' # ステータス確認。disabledになった。 systemctl list-unit-files | grep firewall # firewalld.service disabled # 再起動してファイアウォールの状態を確認する。 reboot
再起動後、iptablesコマンドでファイアウォールの状態を確認。
sudo iptables -L -n # Chain INPUT (policy ACCEPT) # target prot opt source destination # ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 # ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 # ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:67 # ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67 # Chain FORWARD (policy ACCEPT) # target prot opt source destination # ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED # ACCEPT all -- 192.168.122.0/24 0.0.0.0/0 # ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 # REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable # REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable # Chain OUTPUT (policy ACCEPT) # target prot opt source destination
dhcp用のフィルタルールはfirewalldが管理しているわけではなさそうですね。ACCEPTで入っているので問題なしです。OUTPUTが全部許可で、INPUTも全部許可。これで何でもパケットが通る様になりました。FORWARD_OUT_ZONES等の定義設定が消えているので、firewalldのサービスは無効化出来た事が確認できます。
サービスの起動と停止。
systemctlコマンドを使って出来ます。apacheを例に。
# インストールされていなければ先にインストールします。 sudo yum install httpd.x86_64 # apacheの起動 sudo systemctl start httpd.service # ステータス表示 sudo systemctl status httpd.service # 停止 sudo systemctl stop httpd.service # apacheの有効化 sudo systemctl enable httpd.service # apacheの無効化 sudo systemctl disable httpd.service
apacheを起動して、ブラウザでアクセスしてみたところが下記の図。
ファイアウォールも無効化してしまったので、取りあえずアクセス出来ています。ファイアウォールの設定は、X上でfirewall-configと叩いて実行してください。
固定IPにする方法も載せておきます。
/etc/sysconfig/network-scripts /以下のifcfg-***のファイルがネットワークの設定ファイル。BOOTPROTOをstaticに変更して、IPADDR、NETMASK、 GATEWAY、NAMESERVERを追記する。また、ONBOOTがNOならYESにしておく。
# ifcfg-enp0s25のファイル名は環境によって異なります。 sudo vi ifcfg-enp0s25
ifcfg-enp0s25の内容(一例。適宜修正してください)
HWADDR="00:19:99:xx:xx:xx" TYPE="Ethernet" BOOTPROTO="static" IPADDR=172.20.1.240 NETMASK=255.255.255.0 GATEWAY=172.20.1.1 NAMESERVER=172.20.1.1 DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="no" NAME="enp0s25" UUID="dfd8b39a-0115-4bd4-8494-e403e5133f04" ONBOOT="yes"
SELinuxを無効にする(再起動したタイミングで無効になります)。
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux # SELinuxの状態確認 getenforce
CentOS7を使ってみた感想
全体的にはCentOS6までのノウハウが使えそうですが、サービスやファイアウォール回りで変更があるので、その辺に慣れる事が出来れば特に問題なさそうです。他の感想としては・・・
- パッケージ類が新しい(嬉しい点)
- 起動が速い
- DESKTOPの動きはきびきびしている印象を受けた
- ファイアウォールの扱いが面倒。ちょっとしたテストなら無効化した方が早い。
- 安定性はRHELのコピーなので折り紙つき
- yumでのパッケージ管理は従来通り
参考にしたサイト