centos7

【めもめも】CentOS7環境のセットアップ

More than 1 year has passed since last update.

これは何?

ちょっとした実験環境(使い捨て環境)として、VM(Oracle VM VirtualBox)でCentOS7環境をセットアップする時の自分用メモ。
イメージを使いまわせば簡単なんだけど、最低限手を動かさないと忘れちゃうので、定期的にやっている儀式の補助記憶装置として、残しておく(最近忘れっぽくなってきたので...)

前提条件など

  • システムリソースについては、CPUの数、メモリ割り当ては用途次第で決める
  • ネットワークはアダプター1(NAT)、アダプター2(ホストオンリーアダプター)を準備する
    • インターネット接続用と、内部ネットワーク接続用の2つの口

以下の公式サイトから Minimal ISO のイメージをダウンロードしてOSインストールする。

共通でやっておくこと(ネットワークまわり)

自身が気持ちよく使える環境のために、設定しておきたい環境設定。

NICの起動設定

デフォルトでNICは起動時に有効化されていないので、ONBOOTを有効化し、IPV6設定はおもちゃ環境では事態をややこしくするので落としておく。

NAT側 の設定。

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=dcf41d2a-9b40-4982-a83e-ac7b67f6eee0
DEVICE=enp0s3
ONBOOT=yes

仮想LAN側 の設定。
プライベートIPは192.168.56.0/24の範囲内で十分だと思うので、その範囲で用途に応じて割り振る。

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=no
IPADDR=192.168.56.123
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=cc2f5178-0bea-44df-b1ad-16d79ecb9b6e
DEVICE=enp0s8
ONBOOT=yes

ちなみに下記のサイトによると、RHEL 7, CentOS 7では、NetworkManager の利用が推奨されていて、nmtui コマンドを実行すると、対話的にネットワークの設定を行うことが可能とのこと。
実験環境なので、ちょろちょろっと編集しちゃうけど。

なおNICの種類を見るには以下のコマンドを実行すると確認できる。

# nmcli c

ホスト名の変更

目的に応じて、なんとなく区別ができるような(気持ちが高揚する感じの)ホスト名をつける。

以下のコマンドを実行し、ホスト名を設定する。

# hostnamectl set-hostname ホスト名

SELinuxの無効化

デフォルトだと有効。おもちゃの環境では事態をややこしくするので、SELinuxは無効化しておく。
無効にする場合は /etc/sysconfig/selinux のSELINUXを編集

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

ちなみにgetenforceコマンドを実行すると、SELinuxの状態確認ができる。

FWの無効化

デフォルトだと有効。おもちゃの環境では(…のくだりは以下省略)。
ステータスを確認し、起動していたら停止。ついでにOS起動時に動かないようにしておく。

# systemctl status firewalld
# systemctl stop firewalld
# systemctl disabled firewalld

ちょっと脱線

おっさん世代(CentOS6以前の旧人類)だと、iptables(さすがにipchainsとは言わない)のほうが耳慣れているので、「時代だなぁ~」といってみたくなる。

おっさんネタついでに、最近だとサービス起動については/etc/init.d/ はすっからかん。
service コマンドから systemctl コマンドへ。いや大体がそっち系へ。いろいろな新出イディオムに対応しないと、ニュータイプと会話できなくなってしまうので、備忘のためにめもめもしておく。

# service named start/stop/status → # systemctl start/stop/status named

# chkconfig named on/off → # systemctl enable/disable named

# chkconfig --list → # systemctl list-unit-files --type=service

あとはレガシーな net-tools が標準インストールからなくなったので、ip ~ を覚える。さよなら、net-tools…

# ifconfig → # ip addr show

# ifconfig eth0 192.168.0.100 netmask 255.255.255.0 → # ip addr add 192.168.0.100/255.255.255.0 dev eth0

# route → # ip route

# netstat -ntpa → # ss -ntpa

# arp → # ip neighbor

共通でやっておくこと(パッケージまわり)

自身が気持ちよく使える環境のために、やっておくこと。
CentOS7のパッケージ管理はまだDNFではないので、yumで必要なものを入れておけばよい。
(yumを使っているイコールpythonのデフォルトは2系を意味するという、うれしくない感じでもある)

yum リポジトリの追加

EPELリポジトリはよく使うので忘れずに入れる。

# yum install epel-release

よく使うパッケージの追加

エディタなどのツールから開発ツール、python環境構築のために必要なパッケージは後でイライラしないように、入れておくのが一番。

# yum install vim wget unzip gcc gcc-c++ cmake git zlib-devel bzip2-devel readline-devel openssl-devel sqlite-devel

作業・実行ユーザーの環境

python3実行環境の構築

大体の場合、python3系は自由に使える必要があるので、事前に用意しておく。

参考