《OpenStack云计算实战手册(第2版)》——1.2 使用VirtualBox和Vagrant创建一个沙盒环境

简介:

本节书摘来自异步社区《OpenStack云计算实战手册(第2版)》一书中的第1章,第1.2节,作者: 【英】Kevin Jackson , 【美】Cody Bunch 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 使用VirtualBox和Vagrant创建一个沙盒环境

用VirtualBox和Vagrant创建一个沙盒环境,来帮助我们探索和尝试OpenStack相关服务。VirtualBox使我们能够玩转虚拟机和网络,而不影响我们其他的工作环境,VirtualBox的Windows、Mac OSX和Linux版本可以免费从 http://www.virtualbox.org 下载。Vagrant可以帮助自动化管理这些任务,这就意味着可以少花时间创建测试环境,把时间多用在使用OpenStack上。Ubuntu系统上可以直接安装Vagrant包,对于其他系统,请访问 http://www.vagrantup.com/ ,这个测试环境还可以用于其他章节。

这里假设用来搭建测试环境的计算机具有足够强的处理能力,支持硬件虚拟化(如 Intel VT-X和 AMD-V技术)并且至少有8GB内存。时刻牢记,我们正在创建一个虚拟环境用来玩转虚拟机,所以机器的内存容量越大越好。

准备工作
首先,必须从 http://www.virtualbox.org/ 下载VirtualBox,然后按照安装步骤操作。

此外,还需要下载安装Vagrant,后面的章节将会详述。

本书所有操作都假设你安装OpenStack的底层操作系统是Ubuntu 12.04 LTS。但无须下载Ubuntu12.04 ISO镜像,因为Vagrant会帮我们搞定。

操作步骤
为了使用VirtualBox创建一个沙盒环境,我们将使用Vagrant定义一个独立的虚拟机,使我们能够创建运行云实例所需的所有OpenStack服务。该虚拟机将用作OpenStack控制节点,它的配置至少需要2GB内存和20GB硬盘空间和三个网络接口。Vagrant自动设置虚拟机上的一个接口——NAT
(Network Address Translate)接口,该接口允许虚拟机连接到VirtualBox的外部网络下载软件包。这个NAT接口没有在Vagrantfile中涉及,但会显示为虚拟机的eth0。这里配置的第一个OpenStack环境使用的接口是我们OpenStack计算节点的公共网络接口;第二个接口是私有网络接口,用作与不同的OpenStack Compute主机之间进行内部通信用;第三个接口当在学习第8章 时会做为外部网络使用。

执行以下步骤,使用Vagrant创建运行OpenStack计算服务的虚拟机。

1.从 http://www.virtualbox.org 下载安装VirtualBox,如果使用Ubuntu 12.04 LTS自带的版本将会遇到一些问题。

提示

本书使用的是VirtualBox 4.2.16。
2.从 http://www.vagrantup.com 下载安装Vagrant,如果使用Ubuntu 12.04 LTS自带的版本将会遇到一些问题。

提示

本书使用的是Vagrant 1.2.7。
3.安装之后,在Vagrantfile 文件中设置虚拟机和网络。为此,创建一个工作目录(如创建~/cookbook目录),在该目录下编辑Vagrantfile文件,命令如下:

mkdir ~/cookbook  
cd ~/cookbook  
vim Vagrantfile
AI 代码解读

4.编辑该文件配置Vagrant如下:

# -*- mode: ruby -*-  
# vi: set ft=ruby :  

nodes = {  
  'controller'  =>  [1, 200],  
}  

Vagrant.configure("2") do |config|  
  config.vm.box = "precise64"  
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"  

  # Forescout NAC workaround  
  config.vm.usable_port_range = 2800..2900  

  nodes.each do |prefix, (count, ip_start)|  
   count.times do |i|  
     hostname = "%s" % [prefix, (i+1)]  

     config.vm.define "#{hostname}" do |box|  
      box.vm.hostname = "#{hostname}.book"  
      box.vm.network :private_network, ip:  
        "172.16.0.#{ip_start+i}", :netmask =>"255.255.0.0" 
      box.vm.network :private_network, ip: 
        "10.10.0.#{ip_start+i}", :netmask =>"255.255.0.0" 
      box.vm.network :private_network, ip: 
        "192.168.100.#{ip_start+i}", :netmask =>"255.255.255.0" 

      # Otherwise using VirtualBox 
      box.vm.provider :virtualbox do |vbox| 
        # Defaults 
        vbox.customize ["modifyvm", :id, "--memory",2048]
        vbox.customize ["modifyvm", :id, "--cpus", 1] 
      end 
     end 
   end 
  end 
end
AI 代码解读

5.现在可以准备启动控制节点了。只需执行:

vagrant up controller
AI 代码解读

祝贺你!你已成功创建了一个运行Ubuntu 12.04系统的VirtualBox虚拟机用来安装OpenStack控制服务。
工作原理
我们通过Vagran定义并创建了一个VIrtualBox虚拟机。Vagrant 基于工作目录(存储和运行VirtualBox虚拟机的目录)下的Vagrantfile文件来配置该虚拟机。虽然文件是基于Ruby语法的,但是内容基本上都一目了然。具体设置如下。

主机名为controller。
VM是基于Precise64,Ubuntu 12.04 LTS 64位系统的别名。
指定了2GB RAM、1 CPU和一个外部磁盘挂在名为controller-cinder.vdi的虚拟机上。
然后,通过Vagrant命令启动该虚拟机。

vagrant up
该命令将会启动Vagrantfile 配置好的虚拟机。这里只设置一个虚拟机,所以命令将会启动这台唯一的虚拟机。

执行以下命令,登录到新创建的虚拟机:

vagrant ssh controller
更多参考
除了使用Vagrant 和VirtualBox配置测试环境,还可以使用其他虚拟化产品来学习OpenStack,如VMware Server、VMware Player、VMware Fusion等。

目录
打赏
0
0
0
0
1817
分享
相关文章
探索云计算环境下的网络安全新策略
在数字化时代,云计算作为一种新兴技术,正逐渐成为企业和个人数据存储、处理的重要方式。然而,随着云服务的普及,网络安全问题也日益凸显,成为制约云计算发展的关键因素。本文将从云服务的基本概念入手,深入探讨云计算环境中的网络安全挑战,并提出相应的解决策略,以期为云计算的安全发展提供参考。
137 66
云计算环境下的网络安全挑战与防护策略
【9月更文挑战第35天】随着云计算技术的飞速发展,企业和个人越来越依赖云服务来存储和处理数据。然而,这一趋势同时带来了前所未有的网络安全威胁。本文将深入探讨在云计算环境中面临的主要网络安全问题,并提出有效的防护措施。从数据加密到身份验证,再到入侵检测系统的应用,我们将一一剖析,旨在为读者提供一套全面的云计算安全解决方案。
云计算环境下的运维自动化实践
本文探讨了在云计算环境下实施运维自动化的必要性、挑战及解决方案,重点介绍了如何利用现代技术工具实现高效的云资源管理和监控。通过具体案例分析,展示了自动化运维在提升系统稳定性、降低人力成本方面的优势。
云计算环境下的运维挑战与解决方案
本文探讨了云计算环境中运维面临的主要挑战,包括资源管理、自动化部署、安全性问题等,并提出了相应的解决策略。通过案例分析和最佳实践,为云环境下的运维工作提供了指导和参考。
158 1
云计算环境下的网络安全防护策略
在云计算的浪潮下,企业和个人用户纷纷将数据和服务迁移到云端。这种转变带来了便利和效率的提升,同时也引入了新的安全挑战。本文将探讨云计算环境中网络安全的关键问题,并介绍一些实用的防护策略,帮助读者构建更为安全的云环境。
云计算环境下的网络安全策略与实践
在数字化时代,云计算已成为企业和个人存储、处理数据的重要方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨如何在云计算环境中实施有效的网络安全措施,包括加密技术、访问控制、安全监控和应急响应计划等方面。我们将通过具体案例分析,展示如何在实际场景中应用这些策略,以保护云中的数据不受威胁。
云计算环境下的性能优化实践
云计算环境下的性能优化实践
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
128 3
探索云计算环境下的网络安全新策略
在信息技术飞速发展的今天,云计算已成为推动企业创新和效率提升的关键力量。然而,随着云服务的普及,网络安全和信息安全问题也日益凸显,成为制约云计算发展的重要瓶颈。本文深入探讨了云计算环境中的网络安全挑战,分析了当前主流的云服务安全技术,包括数据加密、访问控制、身份验证等,并提出了一系列创新性的网络安全管理策略。通过对比传统网络安全措施与云计算环境下的安全需求,本文旨在为企业和个人用户提供一套全面而实用的云计算安全防护指南,以应对日益复杂的网络威胁,确保信息资产的安全与完整。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等