2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例vagrantfile
本章内容需要关闭 Hyper-V 啊,希望大家提前关闭,避免其他问题
附带说明,本文有示例demo,在文章下方,请耐心查看,使用demo时,希望您已经安装好了vagrant + VirtualBox。
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
老套路,更新留坑
VirtualBox 安装 【官网下载】
具体安装过程无非就是下一步下一步,没啥好说的
vagrant 安装
vagrant windows 下载
- 64 位下载:https://releases.hashicorp.co…
- 32 位下载:https://releases.hashicorp.co…
百度云64位下载:
链接:https://pan.baidu.com/s/1oiztOlj0S_h6AfQ6WdUb_w 提取码:aoph
vagrant mac 下载
vagrant box 下载
- 官网下载:https://app.vagrantup.com/box…
- 百度云下载: 提取码:aoph
vagrant box 添加到本地镜像
- 下载好的镜像添加
vagrant box add {镜像名称} {镜像地址}
例如:
vagrant box add C:/box/centos7.box --name centos/7.5
- 使用远程镜像
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu/bionic
vagrant 命令说明
vagrant destroy 删除虚拟机
vagrant destroy -f lincms
vagrant up 启动/创建虚拟机
vagrant up lincms
vagrant ssh 进行虚拟机交互命令行
vagrant ssh lincms
vagrant reload 重新启动虚拟机
vagrant reload lincms
vagrant up/reload –provision 重新创建或重新执行脚本
vagrant up --provision
vagrant reload --provision
vagrant status 查看当前目录下的虚拟机状态
vagrant status
例如:
G:\project
λ vagrant status
Current machine states:
lincms running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
vagrant 使用样例
我们举例以lin-cms-tp的全家桶进行举例,其他目录一样哈,别太注重目录
- 进入 lin-cms-tp 全家桶 平级目录
λ ls
lin-cms-tp
- 初始化Vagrantfile
vagrant init
查看目录变化,查看是否生成Vagrantfile
ls
lin-cms-tp Vagrantfile
- 添加 box 镜像
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu/bionic
- 然后替换Vagrantfile 内容
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.6.0"
boxes = [
{
:name => "lincms",
:eth1 => "10.10.1.10",
:mem => "1024",
:cpu => "1"
}
]
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/bionic"
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", opts[:mem]]
v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
end
config.vm.network :private_network, ip: opts[:eth1]
end
end
config.vm.synced_folder "./lin-cms-tp", "/home/vagrant/lin-cms-tp"
config.vm.provision "shell", privileged: true, path: "./setup.sh"
end
- 新建脚本文件:setup.sh , 内容如下:
# Timezone
sudo /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' > /etc/timezone
# 设置国内源
sudo mv /etc/apt/sources.list /etc/apt/sources.list.back && \
echo '# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 \n \
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse \n \
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse \n \
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse \n \
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse \n \
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse \n \
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse \n \
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse \n \
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse \n \
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse \n \
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse' >> /etc/apt/sources.list
# Libs
sudo apt-get update && sudo apt-get install -y wget curl git vim gcc glibc-static telnet bridge-utils
# install docker
sudo curl -fsSL https://get.docker.com | sudo bash -s docker --mirror Aliyun
sudo groupadd docker
sudo gpasswd -a vagrant docker
sudo systemctl start docker
rm -rf get-docker.sh
# 配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dt77flbr.mirror.aliyuncs.com"]
}
EOF
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
# #下载docker-compose
# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# #给docker-compose执行权限
# sudo chmod +x /usr/local/bin/docker-compose
# #测试安装是否成功,成功的话打印出docker-compose的版本信息
# sudo docker-compose --version
# 使用pip安装docker-compose
sudo apt install python-pip -y
sudo pip install docker-compose
# 打印IP地址信息
ip a
- 最后一步,创建并启动虚拟器
创建
vagrant up lincms
查看状态
vagrant status
进入
vagrant ssh lincms
如果在以上过程出现错误,请到搜索引擎搜索解决,或者提交评论和留言