5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

開発環境全般Advent Calendar 2015

Day 10

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

Posted at

前回

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

です。

参考サイト

公式ドキュメント

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

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?