VirtualBoxにCentOS7を入れて開発環境を構築する


目標

VMにCentOS7をいれて、ホストからSSH接続して操作できるようにすることを目標とします。

また、ホストマシンのブラウザから、VM内で動いているWebサービス等にアクセスできるようにすることも目標とします。

個人的なメモです。世の中Dockerですが、「Dockerとかよく分からないから、開発用VMイメージつくって!」とか言われる環境もあると思うので、、、

環境

VirtualBox 6.0

Virtual Boxの設定

ホストネットワーク設定

「ファイル」→「ホストネットワークマネージャー」

なければ「作成」をクリック

「プロパティ」をクリックして以下の操作を行う。

  1. 「アダプターを手動で設定」を選択
  2. IPv4 アドレスを控える。(例:192.168.56.1)
  3. 「DHCPサーバー」タブをクリック
  4. 「サーバーを有効化」のチェックをはずす

仮想マシン作成

  • CPUコア: 2コアぐらい
  • RAM: 2GBぐらい割り当て
  • HDD: VDIで30 GBぐらい割り当て

仮想マシン設定

仮想マシンで右クリック→「設定」

インストールディスクセット

  1. 左メニューの「ストレージ」をクリック
  2. コントローラー: IDE内の「空」を選択
  3. 右のCDマーククリック→CentOS7のisoを選択

ネットワーク設定

  1. 左メニューの「ネットワーク」をクリック
  2. 「アダプター2」タブをクリック
  3. 「ネットワークアダプター有効化」をチェック
  4. 割り当てを「ホストオンリーアダプター」にする。名前はホストネットワーク設定でIPv4アドレスを控えたものを選ぶ。
  5. 「OK」をクリック

CentOS7のインストール

いろいろ入れられるとめんどうなので最小構成でインストール
Ethernetの設定をONにすること。
あと、workユーザーを一つつくる
workユーザーに管理者権限を与えるのを忘れないように

CentOS7初期設定

まずは、rootでログイン

USキーボード設定

※JISキーボードの方はスルーで

# localectl set-keymap us

workユーザーに管理者権限を与える

※workユーザーに管理者権限を与えるのを忘れている場合のみ

# usermod -aG wheel workuser

networkまわりを設定

デバイス設定

# nmcli d

このような表が表示されると思います。

DEVICE TYPE STATE CONNECTION 意味
enp0s3 ethernet connected enp0s3 NATルーター(ゲスト→WWW)
enp0s8 ethernet disconnected -- ホストオンリーアダプター(ホスト→VM)
lo loopback unmanaged -- loopback

ホストネットワーク設定でメモしたIPv4アドレスのうち、ホスト部(一番右の数字)を適当にきめる。(ここでは102)
例:192.168.56.102

enp0s3の設定

ipv6をとめる

# nmcli c mod enp0s3 ipv6.method ignore
enp0s8の設定

ipv4を固定IPにする

# nmcli c mod enp0s8 ipv4.addresses 192.168.56.102/24
# nmcli c mod enp0s8 ipv4.method manual

enp0s8を自動で接続するようにする

# nmcli c mod enp0s8 connection.autoconnect yes

enp0s8のipv6をとめる

# nmcli c mod enp0s8 ipv6.method ignore

サービスの再起動

# systemctl restart network

接続確認

# curl yahoo.co.jp

再起動

# shutdown -r now

SSH接続の設定

一応rootでのログインを拒否する

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk
# vi /etc/ssh/sshd_config
sshd_config
PermitRootLogin no

SSH接続

Rlogin、teraterm等のSSHクライアントからつなげる。
つながらなかったら、firewallまわりをみる。
(参考)https://qiita.com/haminiku/items/56fcb578d86abcd0b571

# firewall-cmd --list-services --zone=public  --permanent
# firewall-cmd --add-service=ssh --zone=public --permanent
# systemctl restart firewalld

yumの設定

※ここからはSSH接続で操作

日本のミラーサイトを設定

設定ファイルをバックアップする。

# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk

設定ファイルの内容を編集する。
(参考)http://tomoyamkung.net/2014/08/02/linux-yum-repository-baseurl-setting/

具体的には下記内容をやっています。
* mirrorlist#でコメントアウト
* baseurlを追加

vi /etc/yum.repos.d/CentOS-Base.repo 
CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
    http://ftp.jaist.ac.jp/Linux/centos/$releasever/os/$basearch/
    http://ftp.iij.ad.jp/Linux/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/
    http://ftp.jaist.ac.jp/Linux/centos/$releasever/updates/$basearch/
    http://ftp.iij.ad.jp/Linux/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/extras/$basearch/
    http://ftp.jaist.ac.jp/Linux/centos/$releasever/extras/$basearch/
    http://ftp.iij.ad.jp/Linux/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=2

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/centosplus/$basearch/
    http://ftp.jaist.ac.jp/Linux/centos/$releasever/centosplus/$basearch/
    http://ftp.iij.ad.jp/Linux/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/contrib/$basearch/
    http://ftp.jaist.ac.jp/Linux/centos/$releasever/contrib/$basearch/
    http://ftp.iij.ad.jp/Linux/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=2

Proxy設定

社内回線でProxyが邪魔する場合は以下の設定をします。

# cp /etc/yum.conf /etc/yum.conf.bk
# echo “proxy=http://proxy.hogehoge.co.jp:80” >> /etc/yum.conf

最初にやる操作

アップデート

# yum update

wgetのインストール

多分使うので入れておきます。

# yum -y install wget

おわりに

VirtualBoxにCentOS7を入れて環境つくって、といった内容を一通りまとめました。

書いてて思いましたが、普通にVagrantを使ったほうが早いので、そっち使いましょう。