Vagrant-虚拟机管理

1. 安装Vagrant与VirtualBox

Vagrant

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
下载地址

VirtualBox

VirtualBox 是一款开源虚拟机软件
Download

2. 添加box

// 查看box列表
C:\Users\DELL>vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.

// 添加box
C:\Users\DELL>vagrant box add puphpet/centos65-x64
==> box: Successfully added box 'puphpet/centos65-x64' (v20161102) for 'virtualbox'!

3. 初始化,启动,连接

// 在桌面新建guosk文件夹来初始化Vagrant
C:\Users\DELL\Desktop\guosk>vagrant box list
puphpet/centos65-x64 (virtualbox, 20161102)

// 初始化
C:\Users\DELL\Desktop\guosk>vagrant init puphpet/centos65-x64

// 启动Vagrant
C:\Users\DELL\Desktop\guosk>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'puphpet/centos65-x64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'puphpet/centos65-x64' is up to date...
==> default: Setting the name of the VM: guosk_default_1479728274627_41041
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 5.0.26
    default: VirtualBox Version: 5.1
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/DELL/Desktop/guosk

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。
Download
使用putty.exe连接到虚拟机

Paste_Image.png

login as: vagrant
vagrant@127.0.0.1's password:
Last login: Mon Nov 21 11:47:02 2016 from 10.0.2.2
[vagrant@localhost ~]$ pwd
/home/vagrant

4. 启动,停止,重启,销毁

// 启动
vagrant up

// 停止
vagrant halt

// 使用ssh连接
vagrant ssh

// 安装Apach服务器
sudo yum install httpd

// 启动服务器
[vagrant@localhost ~]$ sudo service httpd start
exit

// 暂停虚拟机
vagrant suspend

// 恢复虚拟机
vagrant resume

// 重启
vagrant reload

// 销毁
vagrant destroy

yum

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

5. 共享的目录

默认情况下,vagrant会共享我们的项目目录,在项目的虚拟机里面,会有一个跟我们的项目的目录是同步的。这样我们可以在本地的电脑上去编辑项目的文件,然后在虚拟机上运行它们。

// 虚拟机内的'/vagrant'目录和本地的项目目录同步
 default: /vagrant => C:/Users/DELL/Desktop/guosk

6. 配置共享目录

如果有额外的目录要跟虚拟机同步的话,可以通过修改Vagrantfile这个文件,去添加这些额外的共享目录。

// Vagrantfile
config.vm.synced_folder "../data", "/vagrant_data",
    create: true, owner: "root", group: "root"
    // creat:如果本地data文件夹不存在,就会创建
    // owner:目录的拥有者
    // group:所属群组

// 重启Vagrant
vagrant reload
 default: /vagrant => C:/Users/DELL/Desktop/guosk
 default: /vagrant_data => C:/Users/DELL/Desktop/data

// vagrant目录的拥有者和群组是vagrant
drwxrwxrwx.  1 vagrant vagrant     0 Nov 21 12:28 vagrant
// vagrant_data目录的所有者和所属群组是root
drwxrwxrwx.  1 root    root        0 Nov 21 12:41 vagrant_data

7. 网络配置

Vagrant提供了三种方法:私有网络、公有网络、端口转发

8. 私有网络

// Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"
// 开启私有网络并重启
// 然后本机和虚拟机之间就可以通信了

9. 公有网络

如果想让同一局域网内的其他设备也可以访问虚拟机的话,需要去配置公有网络。

// Vagrantfile
config.vm.network "public_network"
// 设置公有网络并重启
vagrant ssh
// ssh登录
ifconfig
// 查询ip
inet addr:192.168.1.185  Bcast:192.168.1.255  Mask:255.255.255.0
// 虚拟机共有网络IP

10. 搭建Web服务器

在虚拟机上搭建一个Web服务器来测试配置好的网络。

// 安装Apach服务器
sudo yum install httpd

// 安装Vim
sudo yum install vim

$ sudo vim /etc/httpd/conf/httpd.conf
// 编辑Apach的配置文件
NameVirtualHost *:80

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /vagrant/www/
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
// 将www目录设置为虚拟机的根目录

// 启动httpd
$ sudo service httpd start

// 查看虚拟机共有IP
$ ifconfig
192.168.1.185

浏览器访问192.168.1.185访问vagrant里面的www这个目录里面的东西;
为/vagrant跟我们电脑上的项目的目录是同步的,所以,我们可以本地开发项目,然后通过在虚拟机上配置好的环境去运行项目。

11. 打包分发

// 打包之前先删除一个文件
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
// 执行打包
vagrant package

打包完成后会在当前目录生成一个package.box文件,将这个文件传给其他用户,其他用户只要添加这个box并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容