制作一个CentOS7的Vagrant Box

一、相关软件:

折腾过程中需要用到以下内容:
操作系统centos7的镜像,本次使用CentOS-7-x86_64-Minimal-1708.iso

虚拟机软件virtualbox, 本次使用版本VirtualBox 5.2.8

vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境, 本次使用版本vagrant_2.0.2_x86_64.msi

二、 虚拟机配置

  • 内存:2G
  • 硬盘:40G 动态分配
  • 声音、USB: 禁用
  • 网络: 网络地址转换(NAT), 端口转发-> ssh 宿主机:127.0.0.1 222 => 虚拟机: (空) 22

如下图
virtulbox-config
virtulbox-config

三、安装centos7

  • 安装centos 7
  • 默认分区
  • 设置root密码为vagrant

四、配置centos

安装后重启,进入centos配置

1. 更改网络配置,设置开机启动

将ifcfg-enp0s3的ONBOOT=no,改为ONBOOT=yes

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 

以前是传统的命名eth0、eth1等, centos7里网卡代号是enp0s3,或者其他方式如enp4s0,如果觉得ifcfg-enp0s3不习惯,也可以改成ifcfg-eth0:
更改grub

# vi /etc/default/grub

在GRUB_CMDLINE_LINUX的最后,加上 net.ifnames=0 biosdevname=0 的参数

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"


# grub2-mkconfig -o /boot/grub2/grub.cfg
# mv /etc/sysconfig/network-scripts/ifcfg-enp0s3  /etc/sysconfig/network-scripts/ifcfg-eth0
# reboot

2. 安装ssh-server

a. 安装openssh-server

# yum -y install openssh-server
# systemctl enable sshd.service
# systemctl start sshd.service
# systemctl status sshd.service

b. 配置ssh, 没配的话连不上
备份/etc/ssh/sshd_config

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

c. 修改sshd_config的GSSAPIAuthentication和UseDNS

# sed -i  -e  's/^GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_ config
# sed -i  -e  's/^#UseDNS yes/UseDNS no/' /etc/ssh/sshd_ config
# systemctl restart sshd.service
# systemctl status sshd.service

3. 更改成163的yum源

非必须步骤,yum安装慢了可以更改yum源
首先,安装wget,然后,备份CentOS-Base.repo, 下载并保存163的repo成CentOS-Base.repo,然后生成缓存。

# yum -y install wget
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 
# mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo
# yum clean all
# yum makecache
  1. 配置selinux
    将SELinux配置成permissive模式
# sed -i -e 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

5. 关闭防火墙

centos7中默认用的是firewalld做防火墙,iptables如果需要的话要自己装,开发的box可以直接禁用掉firewalld。

# systemctl stop firewalld.service
# systemctl disable firewalld.service

6. 安装ntpd服务及其他服务

ntpd主要用来同步时间, ntpq -p可以验证是否能够同步。
centos7中,默认没有ifconfig, netstat等工具,可以安装net-tools相关工具。

# yum install -y openssh-clients nano ntp  net-tools*
# systemctl enable ntpd.service
# systemctl stop ntpd.service
# ntpdate cn.ntp.org.cn
# systemctl start ntpd.service
# ntpq -p

7. 创建用户vagrant

# useradd vagrant
# passwd vagrant
# groupadd admin
# usermod -G admin vagrant

8. 配置sudoers

将vagrant用户添加到/etc/sudoers中, 免密登录

# echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers

注: 从centos6.8开始,没有Defaults requiretty的配置项目不需要
sed -i 's/^(Defaults.*requiretty)/#\1/' /etc/sudoers

9. 安装virtualbox additions

首先在虚拟机上找到设备的菜单, 设备=>安装增强功能,然后挂载cdrom,执行安装脚本

# yum install gcc bzip2 make kernel-devel-`uname -r` perl
# mkdir /home/vbox
# mount -t auto /dev/cdrom /home/vbox
# cd /home/vbox
# sh ./VBoxLinuxAdditions.run

10. 添加vagrant's public key

# su vagrant
$ mkdir -m 0700 -p /home/vagrant/.ssh
$ curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys
$ chmod 0600 /home/vagrant/.ssh/authorized_keys

11. 清理centos7

切换回root,然后清理缓存,清理临时文件,清理命令历史,关闭虚拟机

# yum clean all
# rm -rf /var/cache/yum 
# rm -rf /tmp/*
# rm -f /var/log/wtmp /var/log/btmp
# history -c
# shutdown -h now

五、 vagrant创建box

创建一个目录,然后打开命令行,打包虚拟机成box,--base的参数必须是安装的centos7的虚拟机名称,本次是centos7-base。

$ vagrant package --output centos7-base.box --base centos7-base

六、测试box

首先将生成的box添加到box list中, 然后用vagrant init当前目录, vagrant up拉起虚拟机,完成后,vagrant ssh链接进入虚拟机就可以操作了。

$ vagrant box add centos7-base centos7-base.box
$ vagrant box list
$ vagrant init centos7-base
$ vagrant up
$ vagrant ssh
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容