欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用vagrant box 搭建属于自己的linux开发环境

程序员文章站 2022-05-31 18:18:13
...

官网:https://www.vagrantup.com

  1. 准备工作
    版本选择:

centOS 5.6 64bit
MySQL 5.6
redis 3.2
nginx 1.10.2

	先决条件:
	Host 机上装好 vagrant, virtualBox
	下载好 centOS 虚拟镜像
  1. 安装virtualBox
    自行百度, 安装很简单, 确保网络配置中的使用网线连接勾上就好了 不然会遇到启动sandbox的时间连接不上

  2. 配置账号
    配置 vagrant 账号, 使其 sudo 时无需密码:
    确认已安装 sudo
    sudo 到 root 账号 sudo su -
    运行 visudo, 会打开 sudo 的配置文件
    在最后一行增加 vagrant ALL=(ALL) NOPASSWD: ALL, 保存
    配置 vagrant 账户, 以在 Host 机直接 vagrant ssh 到虚拟机
    复制 这里 的内容到 ~vagrant/.ssh/authorized_keys 里
    运行 sudo chmod 0700 ~vagrant/.ssh/
    运行 sudo chmod 0600 ~vagrant/.ssh/authorized_keys

  3. 安装 virtualBox guest addition
    打开 vBox 窗口, 选择 Devices->Insert Guest Additions CD Image
    运行 sudo yum groupinstall “Developer Tools” 安装编译工具
    运行 sudo mount /dev/cdrom /media/cdrom 挂载 guest addition 光盘
    运行 sudo sh /media/cdrom/VBoxLinuxAdditions.run 安装 guest addition
    以上便是 vagrant box 的标准操作流程, 可以参考这里和这里
    接下来, 就要根据自己的需求安装特定软件以及进行相应配置了

  4. 安装定制软件
    5.1 Nginx
    运行 sudo yum install nginx 安装 nginx
    配置 /etc/nginx/nginx.conf, 把 user 配置为 vagrant
    5.2 MySQL/Redis
    运行 sudo yum install mysql-server mysql redis 安装数据库
    开启系统自动运行服务

    运行以下命令以开机启动服务:

sudo chkconfig nginx
sudo chkconfig mysqld
sudo chkconfig redis

##这里并不推荐使用这种方式安装软件

newtonsandbox.vm.provision :shell, path: “scripts/vagrant/provision.sh”

可以在vagrant file 配置bash 脚本, 通过bash脚本去下载软件和初始化环境及启动相关服务。同时还可以在vagrantfile里定义f服务的端口, 确保端口不会冲突

testbox.vm.network :forwarded_port, guest: 9200, host: 9200 # Elastic Search port
testbox.vm.network :forwarded_port, guest: 9300, host: 9300 # Elastic Search port

其他
安装并配置完这些软件之后, 因为 centOS 的一些安全策略, 并不能保证能从 Host 访问到虚拟机中的网站, 因此需要额外进行些配置:

运行 sudo chmod o+x /home/vagrant 以使 nginx 能访问 vagrant 家目录中的项目代码
打开 /etc/sysconfig/selinux, 找到 SELINUX 项, 配置为 disabled. 保存
运行 sudo service iptables stop 停用防火墙

打包

至此, 预想中的虚拟机算是弄完了. 现在要做的就是把这个虚拟机打包成 vagrant box, 以便在任何地方重用

在 Host 机运行 vagrant package --base --output 即可将 vBox 中对应的虚拟机打包输出为

如果在打包过程中报 error: cannot load such file – vagrant-share/helper/api 这样的错误, 尝试运行 vagrant plugin install vagrant-share --plugin-version 1.1.8 之后重试一遍