VagrantでCentOS7を構築して初期設定をします。その後CentOS7のベースイメージとして使用できるようにBox化します。VagrantでCeontOS7を構築する手順は以下を参考にしてください。
参考:VagrantでCentOS7を構築してSSH接続する
CentOS7の初期設定
vagrantユーザのパスワードを設定
# rootユーザになる
[vagrant@centos7 ~] sudo su
# vagrantユーザのパスワードを設定
[root@centos7 ~] passwd vagrant
Changing password for user vagrant.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
vagrantユーザをsudo可能にする
# sudo可能なグループ「wheel」にvagrantユーザを所属させる
[root@centos7 ~] usermod -aG wheel vagrant
# vagrantユーザがsudo可能か試す
[root@centos7 ~] su - vagrant
[root@centos7 ~] sudo ls -la /root
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
# rootのパスワードを入力します。
# rootが所有するファイル一覧が参照できたら完了
[sudo] password for vagrant:
total 28
dr-xr-x---. 2 root root 130 Jul 9 12:11 .
dr-xr-xr-x. 18 root root 237 Jul 9 12:09 ..
-rw-r--r--. 1 root root 18 May 11 2019 .bash_logout
-rw-r--r--. 1 root root 176 May 11 2019 .bash_profile
-rw-r--r--. 1 root root 176 May 11 2019 .bashrc
-rw-r--r--. 1 root root 100 May 11 2019 .cshrc
-rw-------. 1 root root 1186 Jun 6 07:43 original-ks.cfg
-rw-r--r--. 1 root root 129 May 11 2019 .tcshrc
-rw-------. 1 root root 912 Jul 9 12:11 .viminfo
SELinuxの無効化
SELinuxはセキュリティの向上に役立ちますが、開発環境では障害になることが多いので今回は無効化しておきます。
#現在の状況
[root@centos7 vagrant] getenforce
Enforcing
# [Enforcing] SELinux有効でありアクセス制御が有効となる
# [permissive] アクセス制御は無効だが警告メッセージを表示する
# [disabled] SELinux無効
# 無効化する
[root@centos7 vagrant] vi /etc/selinux/config
# 7行目あたりの以下を変更します
# 【変更前】
SELINUX=enforcing
# 【変更後】
SELINUX=disabled
# 再起動する
[root@centos7 vagrant] reboot
# 再起動後以下にようになれば成功
[root@centos7 ~] getenforce
Disabled
パッケージ管理の更新
[root@centos7 ~] yum -y update
wgetのインストール
# wgetのインストール
[root@centos7 ~] yum -y install wget
firewallの無効化
# firewallの無効化
[root@centos7 ~] systemctl stop firewalld
[root@centos7 ~] systemctl disable firewalld
[root@centos7 ~] systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
タイムゾーンの設定
タイムゾーンを日本に設定します。
# 設定前のタイムゾーン確認
[root@centos7 ~] timedatectl status
Local time: Thu 2020-07-09 13:42:09 UTC
Universal time: Thu 2020-07-09 13:42:09 UTC
RTC time: Thu 2020-07-09 13:42:30
Time zone: UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
# タイムゾーンを日本に設定
[root@centos7 ~] timedatectl set-timezone Asia/Tokyo
# 設定後のタイムゾーン確認
[root@centos7 ~] timedatectl status
Local time: Thu 2020-07-09 22:44:22 JST
Universal time: Thu 2020-07-09 13:44:22 UTC
RTC time: Thu 2020-07-09 22:44:22
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
ここまででCeontOS7の初期設定は完了です。
CentOS7のBox作成
vagrantを停止
$ vagrant halt
Boxを作成するためのパッケージを生成
$ vagrant package
==> default: Clearing any previously set forwarded ports...
==> default: Exporting VM...
==> default: Compressing package to: C:/all/vagrant/centos7_base/package.box
# パッケージが生成されたか確認する
$ dir
2020/07/13 14:12 <DIR> .
2020/07/13 14:12 <DIR> ..
2020/07/13 11:02 <DIR> .vagrant
2020/07/13 14:12 632,137,513 package.box
Boxをvagrantに登録
$ vagrant box add base/centos7 package.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'base/centos7' (v0) for provider:
box: Unpacking necessary files from: file://C:/all/vagrant/centos7_base/package.box
box:
==> box: Successfully added box 'base/centos7' (v0) for 'virtualbox'!
# vagrantに登録されたか確認する
$ vagrant box list
base/centos7 (virtualbox, 0)
vagrantfileの作成
自作したBoxを元にvagrantfileを作成します。
# 作業ディレクトを作成する
$ mkdir base-centos7
$ cd base-centos7
# vagrantfileを作成する
$ vagrant init base/centos7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
# 共有フォルダを作成する
$ mkdir share
# vagrantfileが作成されたか確認する
$ dir
2020/07/13 14:25 <DIR> .vagrant
vagnratfileを編集
# 37行目あたりの下記のコメントアウトを外してIDアドレスを変更します。
# 【修正前】
# config.vm.network "private_network", ip: "192.168.33.10"
# 【修正後】
config.vm.network "private_network", ip: "192.168.33.15"
# 46行目あたりの下記コードを修正します。
# 左がWindowsで右がCentOS8の共有フォルダになります。
# 【修正前】
# config.vm.synced_folder "../data", "/vagrant_data"
# 【修正後】
config.vm.synced_folder "./share", "/share"
vagrant upで起動
$ vagrant up
起動後にターミナルソフト(teraterm)でログインします。
ホスト:192.168.33.15
ポート:22
サービス:SSH2
ユーザ:vagrant
パスワード:*******
パスフレーズでログインすることができれば成功
30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。