LoginSignup
9
7

More than 5 years have passed since last update.

vagrant box作成メモ(CentOS 6.6)

Posted at

CentOS 6.6のboxを作ったときのメモ。

事前準備

VM作成

VirutalBoxでVMを作成。

  • 名称:centos66
  • タイプ:linux
  • バージョン:Red Hat(64bit)
  • メモリーサイズ:768MB
  • ハードディスク
    • ファイルタイプ:VDI
    • 可変/固定:可変
    • サイズ:100GB

VM作成後の変更

VM作成後に、VirtualBoxのVM設定画面で以下を実施。

  • オーディオ無効化
  • USBコントローラを無効化

CentOSインストール

CentOS-6.6-x86_64-minimal.isoを使用してインストール(Box化する上で特別な考慮は無い)。
rootパスワードは vagrant とする。

ネットワークIFの有効化

VM作成完了後、コンソールにログインし、ネットワークIFを有効化。

[root@localhost ~]# ifup eth0

Determining IP information for eth0... done
[root@localhost ~]#                                                           

sshポートフォワードの設定(操作しやすいようにするため)

VMの設定画面(「設定」→「ネットワーク」→「アダプター1」→「ポートフォワーディング」)でSSHポートフォワードの設定をする。

項目 設定値
名前 ssh
プロトコル TCP
ホストIP <空白>
ホストポート 任意(今回は2223に設定)
ゲストIP <空白>
ゲストポート 22

VMログイン(SSH)

VMにSSHでログインする。

dev hishi$ ssh root@127.0.0.1 -p 2223
root@127.0.0.1's password:
Last login: Sat Jan 16 10:43:04 2016
[root@localhost ~]#

ネットワークIFの有効化(OS起動時)

ネットワークIFがOS起動時に自動で有効化されるように変更。

[root@localhost ~]# cp -p /etc/sysconfig/network-scripts/ifcfg-eth0  /etc/sysconfig/network-scripts/bk.ifcfg-eth0
[root@localhost ~]#
[root@localhost ~]# sed -i -e 's/^ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]#
[root@localhost ~]# diff /etc/sysconfig/network-scripts/bk.ifcfg-eth0  /etc/sysconfig/network-scripts/ifcfg-eth0
5c5
< ONBOOT=no
---
> ONBOOT=yes
[root@localhost ~]#

vagrantユーザ作成

vagrantユーザのパスワードは vagrant とする。

[root@localhost ~]# useradd vagrant
[root@localhost ~]#
[root@localhost ~]# echo "vagrant" | passwd vagrant --stdin
ユーザー vagrant のパスワードを変更。
passwd: 全ての認証トークンが正しく更新できました。
[root@localhost ~]#

sudo設定

vagrantユーザに対して以下の許可を入れる。

  1. パスワードレスでsudoを許可
  2. tty(コンソール接続)でない場合(pts:ssh接続の場合)もsudoを許可

※2.を入れないと、vagrant upした際に下記エラーが出る。

dev hishi$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
..
..省略
..
    default: /vagrant => /Users/hishi/dev
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mkdir -p /vagrant

Stdout from the command:

Stderr from the command:

sudo: sudo を実行するには tty がなければいけません。すみません

dev hishi$
[root@localhost ~]# cp -p /etc/sudoers /etc/sudoers.bk
[root@localhost ~]#
[root@localhost ~]# visudo
[root@localhost ~]#
[root@localhost ~]# diff /etc/sudoers.bk /etc/sudoers
56a57
> Defaults:vagrant    !requiretty
98a100
> vagrant   ALL=(ALL)   NOPASSWD:ALL
[root@localhost ~]#

ssh接続時の名前解決を無効化

[root@localhost ~]# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bk
[root@localhost ~]#
[root@localhost ~]# sed -i -e 's/^#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
[root@localhost ~]#
[root@localhost ~]# diff /etc/ssh/sshd_config.bk /etc/ssh/sshd_config
122c122
< #UseDNS yes
---
> UseDNS no
[root@localhost ~]#

ssh公開鍵の設定

[root@localhost ~]# su - vagrant
[vagrant@localhost ~]$
[vagrant@localhost ~]$ mkdir .ssh
[vagrant@localhost ~]$
[vagrant@localhost ~]$ curl -L https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub > ~/.ssh/authorized_keys
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
102   409  102   409    0     0    393      0  0:00:01  0:00:01 --:--:--   393
[vagrant@localhost ~]$
[vagrant@localhost ~]$ chmod 700 .ssh
[vagrant@localhost ~]$
[vagrant@localhost ~]$ chmod 600 .ssh/authorized_keys
[vagrant@localhost ~]$
[vagrant@localhost ~]$ exit
logout
[root@localhost ~]#

CentOSインストールメディアのマウント

RPMパッケージをインストールするため、下記メディアをマウントする。
※マウントポイントは、/media/CentOSにしておくと、標準のリポジトリ定義(c6-media)が使えるので楽。

  • CentOS-6.6-x86_64-bin-DVD1.iso
[root@localhost ~]# mkdir /media/CentOS
[root@localhost ~]#
[root@localhost ~]# mount /dev/cdrom /media/CentOS
mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします
[root@localhost ~]# 

gcc, kernel-develのインストール

[root@localhost ~]# yum --disablerepo=\* --enablerepo=c6-media install gcc kernel-devel
読み込んだプラグイン:fastestmirror
インストール処理の設定をしています
c6-media                                                 | 4.0 kB     00:00 ...
c6-media/primary_db                                      | 4.5 MB     00:00 ...
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package gcc.x86_64 0:4.4.7-11.el6 will be インストール
--> 依存性の処理をしています: libgomp = 4.4.7-11.el6 のパッケージ: gcc-4.4.7-11.el6.x86_64
--> 依存性の処理をしています: cpp = 4.4.7-11.el6 のパッケージ: gcc-4.4.7-11.el6.x86_64
--> 依存性の処理をしています: glibc-devel >= 2.2.90-12 のパッケージ: gcc-4.4.7-11.el6.x86_64
--> 依存性の処理をしています: cloog-ppl >= 0.15 のパッケージ: gcc-4.4.7-11.el6.x86_64
--> 依存性の処理をしています: libgomp.so.1()(64bit) のパッケージ: gcc-4.4.7-11.el6.x86_64
---> Package kernel-devel.x86_64 0:2.6.32-504.el6 will be インストール
--> トランザクションの確認を実行しています。
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be インストール
--> 依存性の処理をしています: libppl_c.so.2()(64bit) のパッケージ: cloog-ppl-0.15.7-1.2.el6.x86_64
--> 依存性の処理をしています: libppl.so.7()(64bit) のパッケージ: cloog-ppl-0.15.7-1.2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-11.el6 will be インストール
--> 依存性の処理をしています: libmpfr.so.1()(64bit) のパッケージ: cpp-4.4.7-11.el6.x86_64
---> Package glibc-devel.x86_64 0:2.12-1.149.el6 will be インストール
--> 依存性の処理をしています: glibc-headers = 2.12-1.149.el6 のパッケージ: glibc-devel-2.12-1.149.el6.x86_64
--> 依存性の処理をしています: glibc-headers のパッケージ: glibc-devel-2.12-1.149.el6.x86_64
---> Package libgomp.x86_64 0:4.4.7-11.el6 will be インストール
--> トランザクションの確認を実行しています。
---> Package glibc-headers.x86_64 0:2.12-1.149.el6 will be インストール
--> 依存性の処理をしています: kernel-headers >= 2.2.1 のパッケージ: glibc-headers-2.12-1.149.el6.x86_64
--> 依存性の処理をしています: kernel-headers のパッケージ: glibc-headers-2.12-1.149.el6.x86_64
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be インストール
---> Package ppl.x86_64 0:0.10.2-11.el6 will be インストール
--> トランザクションの確認を実行しています。
---> Package kernel-headers.x86_64 0:2.6.32-504.el6 will be インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 パッケージ           アーキテクチャ
                                   バージョン              リポジトリー    容量
================================================================================
インストールしています:
 gcc                  x86_64       4.4.7-11.el6            c6-media        10 M
 kernel-devel         x86_64       2.6.32-504.el6          c6-media       9.3 M
依存性関連でのインストールをします。:
 cloog-ppl            x86_64       0.15.7-1.2.el6          c6-media        93 k
 cpp                  x86_64       4.4.7-11.el6            c6-media       3.7 M
 glibc-devel          x86_64       2.12-1.149.el6          c6-media       983 k
 glibc-headers        x86_64       2.12-1.149.el6          c6-media       611 k
 kernel-headers       x86_64       2.6.32-504.el6          c6-media       3.3 M
 libgomp              x86_64       4.4.7-11.el6            c6-media       133 k
 mpfr                 x86_64       2.4.1-6.el6             c6-media       157 k
 ppl                  x86_64       0.10.2-11.el6           c6-media       1.3 M

トランザクションの要約
================================================================================
インストール        10 パッケージ

総ダウンロード容量: 30 M
インストール済み容量: 63 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
--------------------------------------------------------------------------------
合計                                             93 MB/s |  30 MB     00:00
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
 Package: centos-release-6-6.el6.centos.12.2.x86_64 (@anaconda-CentOS-201410241409.x86_64/6.6)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
これでいいですか? [y/N]y
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : ppl-0.10.2-11.el6.x86_64                       1/10
  インストールしています  : cloog-ppl-0.15.7-1.2.el6.x86_64                2/10
  インストールしています  : kernel-headers-2.6.32-504.el6.x86_64           3/10
  インストールしています  : glibc-headers-2.12-1.149.el6.x86_64            4/10
  インストールしています  : glibc-devel-2.12-1.149.el6.x86_64              5/10
  インストールしています  : mpfr-2.4.1-6.el6.x86_64                        6/10
  インストールしています  : cpp-4.4.7-11.el6.x86_64                        7/10
  インストールしています  : libgomp-4.4.7-11.el6.x86_64                    8/10
  インストールしています  : gcc-4.4.7-11.el6.x86_64                        9/10
  インストールしています  : kernel-devel-2.6.32-504.el6.x86_64            10/10
  Verifying               : gcc-4.4.7-11.el6.x86_64                        1/10
  Verifying               : libgomp-4.4.7-11.el6.x86_64                    2/10
  Verifying               : glibc-headers-2.12-1.149.el6.x86_64            3/10
  Verifying               : glibc-devel-2.12-1.149.el6.x86_64              4/10
  Verifying               : mpfr-2.4.1-6.el6.x86_64                        5/10
  Verifying               : kernel-devel-2.6.32-504.el6.x86_64             6/10
  Verifying               : cpp-4.4.7-11.el6.x86_64                        7/10
  Verifying               : kernel-headers-2.6.32-504.el6.x86_64           8/10
  Verifying               : ppl-0.10.2-11.el6.x86_64                       9/10
  Verifying               : cloog-ppl-0.15.7-1.2.el6.x86_64               10/10

インストール:
  gcc.x86_64 0:4.4.7-11.el6         kernel-devel.x86_64 0:2.6.32-504.el6

依存性関連をインストールしました:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6       cpp.x86_64 0:4.4.7-11.el6
  glibc-devel.x86_64 0:2.12-1.149.el6     glibc-headers.x86_64 0:2.12-1.149.el6
  kernel-headers.x86_64 0:2.6.32-504.el6  libgomp.x86_64 0:4.4.7-11.el6
  mpfr.x86_64 0:2.4.1-6.el6               ppl.x86_64 0:0.10.2-11.el6

完了しました!
[root@localhost ~]#

CentOSインストールメディアのアンマウント

[root@localhost ~]# umount /media/CentOS/
[root@localhost ~]# 

VirtualBoxの設定画面から以下を選択する。
[ストレージ]->[光学ドライブのCDマーク]->[仮想ドライブからディスクを除去]

VirtualBox Guest Additionsのマウント

VirtualBoxのメニューから以下を選択する。
[Devices]->[Insert Guest Additions CD Image..]

[root@localhost ~]# mkdir /media/GuestAdditions
[root@localhost ~]#
[root@localhost ~]# mount /dev/cdrom /media/GuestAdditions/
mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします
[root@localhost ~]#

VirtualBox Guest Additionsのインストール

[root@localhost ~]# sh /media/GuestAdditions/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.0.10 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module                   [失敗]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions              [  OK  ]
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
[root@localhost ~]#

→失敗。。。
 ログを見てみる。

/var/log/vboxadd-install.log
..
..省略
..
  set -e ; perl /usr/src/kernels/2.6.32-504.el6.x86_64/scripts/recordmcount.pl "x86_64" "64" "objdump" "objcopy" "gcc" "ld" "nm" "" "" "1" "/tmp/vbox.0/VBoxGuest-linux.o";
/bin/sh: perl: コマンドが見つかりません
make[2]: *** [/tmp/vbox.0/VBoxGuest-linux.o] エラー 127
make[1]: *** [_module_/tmp/vbox.0] エラー 2
make: *** [vboxguest] エラー 2
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

→perlも必要らしい。
 VirtualBox Guest Additionsをアンマウントし、再度CentOSインストールメディアをマウント。

[root@localhost ~]# umount /media/GuestAdditions/
[root@localhost ~]# 
[root@localhost ~]# mount /dev/cdrom /media/CentOS/
mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします
[root@localhost ~]#

perlをインストール。

[root@localhost ~]# yum --disablerepo=\* --enablerepo=c6-media install perl
読み込んだプラグイン:fastestmirror
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * c6-media:
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package perl.x86_64 4:5.10.1-136.el6 will be インストール
--> 依存性の処理をしています: perl-libs = 4:5.10.1-136.el6 のパッケージ: 4:perl-5.10.1-136.el6.x86_64
--> 依存性の処理をしています: perl-libs のパッケージ: 4:perl-5.10.1-136.el6.x86_64
--> 依存性の処理をしています: perl(version) のパッケージ: 4:perl-5.10.1-136.el6.x86_64
--> 依存性の処理をしています: perl(Pod::Simple) のパッケージ: 4:perl-5.10.1-136.el6.x86_64
--> 依存性の処理をしています: perl(Module::Pluggable) のパッケージ: 4:perl-5.10.1-136.el6.x86_64
--> 依存性の処理をしています: libperl.so()(64bit) のパッケージ: 4:perl-5.10.1-136.el6.x86_64
--> トランザクションの確認を実行しています。
---> Package perl-Module-Pluggable.x86_64 1:3.90-136.el6 will be インストール
---> Package perl-Pod-Simple.x86_64 1:3.13-136.el6 will be インストール
--> 依存性の処理をしています: perl(Pod::Escapes) >= 1.04 のパッケージ: 1:perl-Pod-Simple-3.13-136.el6.x86_64
---> Package perl-libs.x86_64 4:5.10.1-136.el6 will be インストール
---> Package perl-version.x86_64 3:0.77-136.el6 will be インストール
--> トランザクションの確認を実行しています。
---> Package perl-Pod-Escapes.x86_64 1:1.04-136.el6 will be インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 パッケージ                アーキテクチャ
                                      バージョン             リポジトリー  容量
================================================================================
インストールしています:
 perl                      x86_64     4:5.10.1-136.el6       c6-media      10 M
依存性関連でのインストールをします。:
 perl-Module-Pluggable     x86_64     1:3.90-136.el6         c6-media      40 k
 perl-Pod-Escapes          x86_64     1:1.04-136.el6         c6-media      32 k
 perl-Pod-Simple           x86_64     1:3.13-136.el6         c6-media     212 k
 perl-libs                 x86_64     4:5.10.1-136.el6       c6-media     578 k
 perl-version              x86_64     3:0.77-136.el6         c6-media      51 k

トランザクションの要約
================================================================================
インストール         6 パッケージ

総ダウンロード容量: 11 M
インストール済み容量: 36 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
--------------------------------------------------------------------------------
合計                                             79 MB/s |  11 MB     00:00
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : 1:perl-Pod-Escapes-1.04-136.el6.x86_64          1/6
  インストールしています  : 4:perl-libs-5.10.1-136.el6.x86_64               2/6
  インストールしています  : 1:perl-Pod-Simple-3.13-136.el6.x86_64           3/6
  インストールしています  : 3:perl-version-0.77-136.el6.x86_64              4/6
  インストールしています  : 1:perl-Module-Pluggable-3.90-136.el6.x86_64     5/6
  インストールしています  : 4:perl-5.10.1-136.el6.x86_64                    6/6
  Verifying               : 1:perl-Module-Pluggable-3.90-136.el6.x86_64     1/6
  Verifying               : 1:perl-Pod-Escapes-1.04-136.el6.x86_64          2/6
  Verifying               : 4:perl-5.10.1-136.el6.x86_64                    3/6
  Verifying               : 4:perl-libs-5.10.1-136.el6.x86_64               4/6
  Verifying               : 1:perl-Pod-Simple-3.13-136.el6.x86_64           5/6
  Verifying               : 3:perl-version-0.77-136.el6.x86_64              6/6

インストール:
  perl.x86_64 4:5.10.1-136.el6

依存性関連をインストールしました:
  perl-Module-Pluggable.x86_64 1:3.90-136.el6
  perl-Pod-Escapes.x86_64 1:1.04-136.el6
  perl-Pod-Simple.x86_64 1:3.13-136.el6
  perl-libs.x86_64 4:5.10.1-136.el6
  perl-version.x86_64 3:0.77-136.el6

完了しました!
[root@localhost ~]#

そして、再インストール

[root@localhost ~]# /etc/init.d/vboxadd setup
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module                   [  OK  ]
Building the shared folder support module                  [  OK  ]
Building the OpenGL support module                         [  OK  ]
Doing non-kernel setup of the Guest Additions              [  OK  ]
Starting the VirtualBox Guest Additions                    [  OK  ]
[root@localhost ~]#

→成功

box作成

dev hishi$ vagrant package --base centos66
==> centos66: Clearing any previously set forwarded ports...
==> centos66: Exporting VM...
==> centos66: Compressing package to: /Users/hishi/dev/package.box
dev hishi$

box登録

dev hishi$ vagrant box add centos66 package.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos66' (v0) for provider:
    box: Unpacking necessary files from: file:///Users/hishi/dev/package.box
==> box: Successfully added box 'centos66' (v0) for 'virtualbox'!
dev hishi$

Vagrantfile作成

dev hishi$ vagrant init centos66
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.
dev hishi$

vm起動

dev hishi$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos66'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: dev_default_1452999624828_26394
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => /Users/hishi/dev
dev hishi$

vmログイン

dev hishi$ vagrant ssh
Last login: Sun Jan 17 11:47:55 2016
[vagrant@localhost ~]$

参考にしたサイト

https://docs.vagrantup.com/v2/boxes/base.html
http://www.virtualbox.org/manual/ch04.html
https://docs.vagrantup.com/v2/virtualbox/boxes.html

9
7
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
9
7