使用Vagrant在Mac上创建CentOS7的虚拟机镜像(BOX)
总结
关于CentOS7的BOX,已经在VagrantCloud等多个平台上有大量的发布。
但是,由于不知道安装了什么,我感到不安,所以尝试了自己制作。
下面是我制作时的操作记录。
预先准备
让我们完成下面的准备工作并开始工作。
VirtualBox のインストール
Vagrant のインストール
CentsOS7(CentOS-7-x86_64-Minimal-1611.iso)をダウンロード
创建虚拟机
使用VirtualBox创建虚拟机。
请选取「新建」选项来创建「虚拟机」。
-
- 名前 :vagrant-centos-7
-
- タイプ :Linux
-
- バージョン :Red Hat (64-bit)
-
- メモリーサイズ:1024MB
- ハードディスク:仮想ハードディスクを作成する
-
- ファイルの場所 :vagrant-centos-7
-
- ファイルサイズ :40.00GB
-
- ハードディスクのファイルタイプ :VDI (VirtualBox Disk Image)
- 物理ハードディスクにあるストレージ:可変サイズ
虚拟机的设置
设置启动顺序
存储设置
音频设置
端口设置
网络设置
点击“确定”按钮来关闭设置界面,上述设置就完成了。
安装 CentOS 7
启动虚拟机
引导选择
语言选择
安装概述
设置根路径密码
安装
重新开机
对于CentOS7的配置。
CentOS7的启动
登入
通过root登录。
CentOS Linux 7 (Core)
Kernel 3.10.0-514.el7.x86_64 on an x86_64
localhost login: root
Password:
Last login: Tue Jul 4 12:50:07 on tty1
[root@localhost ~]#
网络设置
确认接口名称
# nmcli c s
NAME UUID TYPE DEVICE
enp0s3 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 802-3-ethernet --
当将ONBOOT设置为yes时,同时会使用DHCP连接到网络。
# nmcli c m enp0s3 connection.autoconnect yes
增加vagrant用户
创建名为”vagrant”的用户,并将密码设为”vagrant”。
# groupadd -g 1000 vagrant
# useradd -g vagrant -u 1000 vagrant
# passwd vagrant
请将密码设置为”vagrant”。
设置sudo和Requiretty。
# visudo
附加以下内容
# Vagrant User Setting
Defaults:vagrant !requiretty
vagrant ALL=(ALL) NOPASSWD: ALL
vagrant用户的设置
SSH连接
在启动Mac终端时,使用以下命令进行连接。
$ ssh -p 2222 vagrant@localhost
如果出现「警告:远程主机标识已更改!」并且无法连接,请调整”known_hosts”文件。
配置Vagrant ssh
$ install -m 0700 -d ~/.ssh
$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
安装GuestAdditions
准备好了
$ sudo yum -y install epel-release
$ sudo yum -y install -y bzip2 gcc make kernel-devel-`uname -r` dkms gcc-c++
安装客户机附加组件。
$ sudo mount -r /dev/cdrom /mnt
$ sudo /mnt/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.22 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.
客座增加性CD的卸载
$ sudo umount /mnt
关闭虚拟机。
将盒子尺寸最小化并关闭。
$ sudo yum clean all
# Log削除
$ sudo rm -rf /var/log/*
$ sudo rm -rf /tmp/*
# 圧縮
$ sudo dd if=/dev/zero of=/0 bs=4k
$ sudo rm /0
# コマンド履歴をクリア
$ sudo rm /root/.bash_history
$ history -c
# シャットダウン
$ sudo shutdown -h now
创建一个盒子
在Mac的终端上,使用vagrant命令创建一个BOX文件。
$ vagrant package --base vagrant-centos7
==> vagrant-centos7: Clearing any previously set forwarded ports...
==> vagrant-centos7: Exporting VM...
==> vagrant-centos7: Compressing package to: /Users/hoge/package.box
$ ls -l package.box
-rw-r--r-- 1 hoge staff 621394873 7 4 15:34 package.box
添加盒子
将已创建的package.bxo注册到vagrant中。
$ vagrant box add local/centos7 package.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7' (v0) for provider:
box: Unpacking necessary files from: file:///Users/uemura/package.box
==> box: Successfully added box 'centos7' (v0) for 'virtualbox'!
$ vagrant box list
local/centos7 (virtualbox, 0)
创建虚拟机并登录
使用已创建的盒子创建虚拟机并尝试登录。
$ mkdir -p ~/Document/Vagrant/centos7
$ cd ~/Document/Vagrant/centos7
$ vagrant init local/centos7
$ vagrant up
$ vagrant ssh
参考文献
ISO
CentOS7(iso)
BOX作成
CentOS 7のVagrant BOXを新規にインストールして作成する
CentOS7の綺麗なboxを自作する
その他
rootだけtty無しのsudoを許可
VirtualBoxの仮想ディスクを圧縮したい
Linuxで入力したコマンドの履歴を消去する方法