Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

CentOS 7をインストールしてVagrant boxを作る その2

前回

CentOS 7をインストールしてVagrant boxを作る その1
CentOS 7をインストールしたところまでやりました。
今回はvagrantユーザの作成、SSHの設定、SELinuxの無効化、boxの作成までをやります。

vagrantユーザの作成

インストール時に作成したrootユーザでログインします。

$ adduser vagrant
$ passwd vagrant  # なんでもかまいませんが、無難にvagrantにしました
$ id vagrant
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)

続いてvagrantユーザをsudoerにします。

$ visudo

ttyでないsudoコマンドも通せるようにします。
56行目あたりにある次の行をコメントアウトします。
ttyで検索すると良いかと。

# Defaults      requiretty  # コメントアウト

99行目あたりにvagrantの行を付け足します。

97 ## Allow root to run any commands anywhere
98 root     ALL=(ALL)   ALL
99 vagrant  ALL=(ALL)   NOPASSWD:   ALL  # 付け足し

これでvagrantユーザはパスワードを入れることなくsudoを実行できるようになりました。

SSHの設定

SSHの設定にはOpenSSHが必要です。
入っているとは思いますが、一応調べておきます。

$ systemctl status sshd

activeの文字が出れば大丈夫です。

Vagrantの良い点の一つは特に公開鍵とかを考えなくとも
vagrant sshと打つだけでVMに接続できることですが、
その仕組みは、VagrantはVMにSSH接続を試みるときに、
まずあらかじめ生成されたInsecureなKeypairを用いて
SSHを試みるからです。
そのInsecure KeypairはVagrantのGitHubリポジトリで公開されています。

$ mkdir /home/vagrant/.ssh
$ chmod 700 /home/vagrant/.ssh
$ curl -kLo authorized_keys 'https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub'
$ chmod 700 /home/vagrant/.ssh
$ chmod 600 /home/vagrant/.ssh/authorized_keys
$ chown -R vagrant.vagrant /home/vagrant/.ssh

SELinuxの無効化

SELinuxは取り扱いが非常に難しいらしいので無効化します。

$ vi /etc/sysconfig/selinux

# enforcing -> disabled
SELINUX=disabled

VirtualBox Guest Additionsのインストール

ドキュメントはUbuntuを想定してるのでちょっとパスが違ってます。

$ curl -kLo VBoxGuestAdditions_5.0.10.iso 'http://download.virtualbox.org/virtualbox/5.0.10/VBoxGuestAdditions_5.0.10.iso'
$ mkdir -p /mnt/VBoxGuestAdditions
$ mount -r VBoxGuestAdditions_5.0.10.iso /media/VBoxGuestAdditions
$ yum install -y bzip2 gcc gcc-c++ kernel-devel kernel-headers
$ sh /mnt/VBoxGuestAdditions/VBoxLinuxAdditions.run
$ umount /mnt/VBoxGuestAdditions
$ rmdir /mnt/VBoxGuestAdditions

yum updateyum clean

$ yum update
$ yum clean

udevのルールの削除

参考にしたサイトではudevのルールを削除していたりするのですが、
削除対象のファイルを見てみたらコメントしかなかったので削除しません。
その1の方でVirtualBoxの設定でUSBやオーディオを無効化していたのに相当するのかもしれません(わかってない)

フラグメンテーションの解消

フラグメンテーションを解消するために /EMPTY という空のファイルを作って削除しているみたいです。
どうしてこれでフラグメンテーションが解消されるのかはよく分かってません。

$ dd if=/dev/zero of=/EMPTY bs=1M
$ rm -f /EMPTY

boxの作成

ゲスト(CentOS)をシャットダウンし、ホスト(Mac)でboxを作ります。

$ shutdown -h now

# Host (Mac)
$ vagrant package --base <VM_Name>  # VirtualBoxのVMの名前を入れます
$ vagrant box add centos71-minimal package.box  # centos71-minimalは任意の名前です

できたもの

できたものをAtlasに公開してみました。
この設定で使いたいという方がいたらどうぞ。
(動作保証はできません)

使い方は、

$ vagrant init marmot1123/centos71-minimal
$ vagrant up

です。

参考サイト

公式ドキュメント

以下のサイトに大変お世話になりました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What are the problem?