これは何?
ちょっとした実験環境(使い捨て環境)として、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系は自由に使える必要があるので、事前に用意しておく。