使用
Vagrant+VirtualBox在 Windows 上快速创建三台能ping通局域网及公网的安装好docker的centos7虚拟机
下载并且安装软件
https://www.virtualbox.org/wiki/Downloads
https://www.vagrantup.com/downloads
https://app.vagrantup.com/centos/boxes/7
添加虚拟机
# 下载 box 文件添加到虚拟机中,执行如下命令$ vagrant box add centos7 CentOS-7-x86_64.box
新建配置文件
脚本文件:https://github.com/WuChenDi/Front-End/tree/master/15-vagrant/centos7
Vagrantfile
# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant.require_version ">= 1.6.0"boxes = [{:name => "manager",:eth1 => "192.168.31.160",:mem => "1024",:cpu => "1"},{:name => "worker1",:eth1 => "192.168.31.161",:mem => "1024",:cpu => "1"},{:name => "worker2",:eth1 => "192.168.31.162",:mem => "1024",:cpu => "1"}]Vagrant.configure(2) do |config|config.vm.box = "centos7"config.ssh.username = 'root'config.ssh.password = 'vagrant'config.ssh.insert_key = 'true'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]endconfig.vm.provider "virtualbox" do |v|v.customize ["modifyvm", :id, "--memory", opts[:mem]]v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]endconfig.vm.network :private_network, ip: opts[:eth1]endendconfig.vm.synced_folder ".", "/home/vagrant"config.vm.provision "shell", privileged: true, path: "./setup.sh"end
setup.sh
#/bin/sh# install some toolssudo yum install -y git vim gcc glibc-static telnet psmisc# install dockercurl -fsSL get.docker.com -o get-docker.shsh get-docker.shif [ ! $(getent group docker) ]; thensudo groupadd dockerelseecho "docker user group already exists"fisudo gpasswd -a $USER dockersudo systemctl start dockerrm -rf get-docker.sh# open password auth for backup if ssh key doesn't work, bydefault, username=vagrant password=vagrantsudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_configsudo systemctl restart sshd
执行 vagrant up 命令,按照配置 Vagrantfile 文件遍历创建虚拟机,并执行 shell 脚本去初始化虚拟机
Vagrant 常用命令
| 命令 | 作用 |
|---|---|
| vagrant box add | 添加box的操作 |
| vagrant init | 初始化box的操作,会生成vagrant的配置文件Vagrantfile |
| vagrant up | 启动本地环境 |
| vagrant ssh | 通过ssh登录本地环境所在虚拟机 |
| vagrant halt | 关闭本地环境 |
| vagrant suspend | 暂停本地环境 |
| vagrant resume | 恢复本地环境 |
| vagrant reload | 修改了Vagrantfile后,使之生效(相当于先halt,再up) |
| vagrant destroy | 彻底移除本地环境 |
| vagrant box list | 显示当前已经添加的box列表 |
| vagrant box remove | 删除相应的box |
| vagrant package | 打包命令,可以把当前的运行的虚拟机环境进行打包 |
| vagrant plugin | 用于安装卸载插件 |
| vagrant status | 获取当前虚拟机的状态 |
| vagrant global-status | 显示当前用户Vagrant的所有环境状态 |
[
](https://blog.csdn.net/weixin_52678046/article/details/112002314)
