使用Vagrant配置并创建属于自己的CentOS box

在使用Vagrant创建虚拟机时,我们要使用CentOS的box来创建虚拟机,而官方提供的box是原版的box,创建完成后还需要自己手动配置环境。我们可以创建一个已经装载好自己需要的常用软件依赖的box,然后将这个box重复使用。

先讲一下相关知识:

  • CentOS7自带的Python版本为2.7。
    python2.7,也就是2版,依然是一种长期支持的稳定版,是传统python;同时系统的yum也只能在python2环境下使用。
    而python3.x版本是一个研究型的开发版,为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容。

  • Linux很多应用都安装在/usr/local下面(usr指的是Unix System Resource,不是指user),而/usr/bin下面的都是系统预装的可执行程序(python2就在这里面),会随着系统升级而改变;如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为
    echo $PATH
    /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dean/bin
    这里/usr/local/bin优先于/usr/bin。

安装centos7原版虚拟机方法请参考实验一第四条:安装Vagrant,并使用Vagrant安装CentOS

安装完成后使用XShell以root用户身份登录
然后update一下:yum -y update
完成后重启一下:reboot,重启完成后重新连进去

一、在CentOS虚拟机中安装Python3

由于可以使用PyCharm位每个项目都创建一个唯一的CentOS虚拟机,所以我们在这里直接装原版Python3:
安装方法可参考之前的实验(直接装在/usr/bin目录下,并将python软链直接指向python3,然后修复yum命令)
或者参考该博文(装在/usr/local/bin目录下,把用户自定义的配置放入/etc/profile.d/目录中):
CentOS7安装Python3环境(无需修复yum命令) – 小武的兴趣部落 – CSDN博客

注意:
“3.7.0”要换成“3.6.6”

安装常用软件:

yum -y install git zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel epel-release openssl-devel kernel-devel gcc

安装pip:

yum -y install python-pip

更新pip:

pip install --upgrade pip

安装flask和Jinja2:

pip install flask jinja2

至此,我们就已经制作了一个带有Python3环境的CentOS虚拟机了。

二、打包BOX

先关闭刚刚创建的虚拟机
然后以管理员身份打开cmd,进入刚刚创建的虚拟机的Vagrantfile所在的文件夹
执行以下语句:

vagrant package

完成后便会在该目录下生成一个“package.box”,这个box即为打包好当前环境的box

现在将该box加载到vagrant的box list中:

vagrant box add --name 'my-virtualbox' package.box

看是否添加成功:

vagrant box list

新建一个文件夹,用来存放init该box后产生的Vagrantfile文件:

cd ..
mkdir myCentOS
cd myCentOS
123

Init该box:

vagrant init my-virtualbox

完成后便可在myCentOS文件夹中就可以看到自己创建的box的Vagrantfile文件。