热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

使用puppetvagrant管理VirtualBox虚拟机

[导读]运维人员经常需要给开发人员分配机器,搭建各种开发环境,还得维护开发机器,如果开发人员越多,需要更多的开发机器,有没有简单的方案来解决这些问题.这里就是为大家vagrant.vagrant大家可能不熟悉,vagrant是使用的Oralce公司的VirtualBox建立快速,
[导读]
运维人员经常需要给开发人员分配机器,搭建各种开发环境,还得维护开发机器,如果开发人员越多,
需要更多的开发机器,有没有简单的方案来解决这些问题.这里就是为大家vagrant.
vagrant大家可能不熟悉,vagrant 是使用的Oralce 公司的VirtualBox 建立快速,便携式,
动态配置的虚拟机.vagrant 可以给开发人员提供一个功能齐全的web开发环境,
vagrant 项目主页地址为:http://vagrantup.com,vagrant 可以和puppet ,chef等结合,
实现虚拟机管理自动化.

[说明]
本次是在ubuntu 11.10上进行测试的.其它操作系统可以参阅官方安装文档,基本步骤都差不多.

[vagrant 安装过程]
1.安装virtualbox
apt-get install virtualbox

2.安装vagrant 和Veewee(veewee此为可选安装)
gem install vagrant
gem install veewee

3.vagrant 增加要安装的虚拟机
vagrant box add centos-5.7 http://packages.vstone.eu/vagrant-boxes/centos-5.8-64bit-latest.box
注意: vagrant box add
box 可以为本地文件,也可以为远程的文件,上面的命令会下载centos-5.8-64bit-latest.box .
box是保存在~/vagrant.d/boxes/ 目录下.如果要存放在到其它目录,可以将文件mv 到目标目录下,
并做个软链接即可.
我们看下 ~/vagrant.d/boxes/目录下有哪些文件?
ls /root/.vagrant.d/boxes/
centos-5.7
ls /root/.vagrant.d/boxes/centos-5.7/
box-disk1.vmdk box.ovf Vagrantfile

[vagrant 使用过程]
下载完成后,我们看下可用的box 有哪些?
#vagrant box list
centos-5.7

接下来我们创建工程目录结构,用来保存puppet 的代码,以及puppet 模块目录.
mkdir -p /root/example/{manifests,modules}
cd example
初始化box .
root@test1:~/example# vagrant init centos-5.7

如果我们不加参数centos-5.7,默认名为base.
接下来我们配置相关环境:
cat Vagrantfile

将配置文件纳入版本控制:
root@test1:~/example# git init

在manifests目录下建立init.pp,可以将写好的模块,放到modules目录下,简单示例:
cat manifests/init.pp
group { "puppet":
ensure => "present",
}
File { owner => 0, group => 0, mode => 0644 }
file { ‘/etc/motd’:
cOntent=> “Welcome to sky grant-built virtual machine!

启动box
root@test1:~/example# vagrant up
[default] VM already created. Booting if it's not already running...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- v-root: /vagrant
[default] -- manifests: /tmp/vagrant-puppet/manifests
[default] -- v-pp-m0: /tmp/vagrant-puppet/modules-0
[default] Running provisioner: Vagrant::Provisioners::Puppet...
[default] Running Puppet with /tmp/vagrant-puppet/manifests/init.pp...
notice: /Stage[main]//File[/etc/motd]/content: content changed '{md5}d41d8cd98f00b204e9800998ecf8427e' to '{md5}7162446602331ff93e480d67d604a701'
notice: /Stage[main]/Rsync/File[/etc/rsync]/ensure: created
notice: /Stage[main]/Rsync/Package[rsync]/ensure: created
大概就两到三分钟就好,我们现在连到虚拟机(box)

root@test1:~/example# vagrant ssh
Last login: Fri Apr 27 05:17:14 2012 from 10.0.2.2
Welcome to sky grant-built virtual machine!
这里如果我们修改了manifests下的init.pp文件,那要怎么执行,可以使用如下命令!

root@test1:~/example# vagrant provision
[default] Running provisioner: Vagrant::Provisioners::Puppet...
[default] Running Puppet with /tmp/vagrant-puppet/manifests/init.pp...
notice: /Stage[main]/Rsync/Tidy[/etc/rsync]: Tidying File[/etc/rsync]
如果修改了Vagrantfile的其它配置可以使用vagrant reload 生效.
更多用法与参考,可以参阅官方文档http://vagrantup.com/docs/provisioners/puppet.html

[vagrant 使用总结]
使用vagrant 可以快速构建虚拟机,如果要大量的虚拟机,非常方便从本地文件重构,或者从网上下载.box文件.
配置比较简单.可以节约大量时间和精力.vagrant的用法官网有详细说明,至此我们可以使用VirtualBox 给

推荐阅读
  • 里加|此功能_Vagrant定制个性化CentOS7模板
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Vagrant定制个性化CentOS7模板相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 如何在Mozilla Firefox中调整GIF动画的循环次数
    本文介绍了如何通过调整Mozilla Firefox的高级设置来控制GIF动画的播放次数,帮助用户根据个人喜好自定义浏览体验。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 本文详细介绍了如何在 CentOS 7 及其衍生发行版(如 Red Hat, Oracle, Scientific Linux 7)上安装和完全卸载 GitLab。包括安装必要的依赖关系、配置防火墙、安装 GitLab 软件包以及常见问题的解决方法。 ... [详细]
  • 分库分表  ShardingJDBC (详解 1/6)
    狂创客圈经典图书:《NettyZookeeperRedis高并发实战》面试必备+面试必备+面试必备【博客园总入口】疯狂创客圈经典图书:《SpringCloud、Nginx高并发核心 ... [详细]
  • opa学习1开发环境搭建
    从官网下载的opa.box进行解压,得到三个文件,box.ovf、box-disk2.vmdk和Vagrantfile,有的电脑上用的是自带的压缩软件,无法对.box文件进 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上安装和配置 MySQL、Tomcat 和 JDK 的步骤。通过本文,您将了解如何顺利安装这些组件,并确保它们能够正常协同工作。 ... [详细]
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
author-avatar
北京雅舍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有