引言

我们为什么需要vagrant?这个不是一个问题,准确说,我们凭什么不需要统一的开发环境。现在,我们小小工作室的线上服务通过docker进行部署,减少了大量的运维操作和环境配置,但是开发过程中还是存在着环境不统一的问题。

良心话是,阿里云提供的云服务减少了我们很多的工作,RDS MNS 和 OSS 都是很好的服务,而且价格并不贵,对于我们来说真的是相当的享受。可是在本地我们还是需要自建服务,于是就有统一的必要了。

镜像下载

vagrant 的 box 镜像种类很多,而且可以通过自行定制打包进行分发。但是,对于像我这样鱼一般智商的人只好用别人的东西了。

首先需要找到需要的box,http://www.vagrantbox.es/ 这个还是有相当全的可以下载,为了和线上的生产环境尽可能的一致,我选用的是CentOS7的系统。方便你我,我也把这个上传到了百度云,如果受限于国内的网速,可以自行下载。

得到了镜像后就开始添加,启动修改了

1
2
3
vagrant box add dev ./centos-7.0-x86_64.box
vagrant init dev
vagrant up

通过ssh连接进行修改

欢迎界面

修改 /etc/motd 文件可以添加SSH远程登陆的开机字符画,至于这个字符画的设计么,Text to ASCII Art 反正这个已经解决了我的需求。

登陆字符画

选取喜欢的样式,复制粘贴就可以完成。

镜像源

其实 CentOS7 本身就会选取镜像源进行加速,但是因为上级设置了缓存服务器,但是万年不更新会出现大量的Hash mismatch的问题,所以还是自己手动换一个不受影响的镜像源吧。

1
2
3
4
mv /etc/yum.repos.d/CentOS-Base.repo \
/etc/yum.repos.d/CentOS-Base.repo.backup
wget -o /etc/yum.repos.d/CentOS-Base.repo \
https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3

顺手我还安装了epel源,之后就是sudo yum clean allsudo yum makecache的事加上静静地等待。

原本准备装下dnf,但是出了点问题,需要让我再思考下怎么回事。

开发的依赖

不管怎么样,先安装下gcc,然后准备编译python3

1
2
3
4
5
wget https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz
tar xzf Python-3.4.4.tgz
cd Python-3.4.4
./configure
sudo make altinstall

好的,然后就是安装pip了

1
2
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

恩,现在不需要预先安装setuptool,就是这么简单

更换pip的源为科大的镜像源

1
2
echo -e "[global]\nindex-url = https://pypi.mirrors.ustc.edu.cn/simple" \
> ~/.pip/pip.conf

数据库

现在默认的mysql被换成了mariadb了,都一样,驱动和连接操作都是一个东西。所以,一样通过yum安装

1
2
3
4
5
6
7
8
sudo yum install -y mariadb mysql-devel mariadb-server
sudo mysqladmin password `password`
# 设置开机启动
sudo chkconfig mariadb on
# 关闭防火墙自启动
sudo chkconfig firewalld off

网页服务

网页服务一般使用 httpd 就结束了,所以,这个就不多说了。

现在就是弄下nodejs了,因为直接使用yum安装会有依赖冲突(这个不应该的,可能是镜像源配置的时候被我弄坏的),所以我就还是从源码进行编译安装吧

1
2
3
4
5
6
wget https://nodejs.org/dist/v4.4.0/node-v4.4.0-linux-x64.tar.xz
tar zxf node-v4.4.0-linux-x64.tar.xz
cd node-v4.4.0-linux-x64
./configure
make
sudo make install

打包

至此,需要用的组件多多少少已经装好了,现在就是将虚拟机打包使用了,执行命令vagrant package,静静地等待打包结束。总的来说,这个就是一篇毫无意义的流水账,为什么写呢?是因为真的很久没有更新过了,再不更新下可能我都忘了我有个博客这件事情。

话说招聘的时候都喜欢看看github的repo,我却那什么的,干什么都不能往github上传,private repo太贵了,基本上用的都是coding,所以,还是靠写写这样的流水账做做update的记录吧。




Published with Hexo and Theme by Kael
X