Linux虚拟机安装(Vagrant)

1.linux简介

Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机

2.应用场景分析

  • 桌面应用
    linux在桌面场景下应用不多,这个场景下一般还是使用windows
  • 服务端(后端)
    电商,门户网站后端服务,一般采用linux作为操作系统,java,c++,python,go,运行和部署在linux服务
  • 嵌入式
    linux最小和最核心的版本只有几百K,智能物联设备方便嵌入式开发
  • 云计算
    运维和部署场景,使用linux

3. Vagrant

3.1 vagrant是什么

Vagrant是一个比较流行的虚拟机管理软件,使用Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等,vagrant集成了主流的虚拟机管理工具vmvare 和 virtualbox,默认使用virtualbox
vagrant 的精髓在一个 Vagrantfile 里面,和 docker 的 Dockerfile 功能上一样。我们只需要把需要安装部署的步骤写在 Vagrantfile 里面,便可以实现轻松部署。vagrant 还支持把当前系统做成一个.box 后缀命名的镜像,类似 docker 的 image,可轻松实现环境的移植。
vagrant 可以把配置好的环境打包成一个box,分享给其他人直接使用。
在容器流行之前,Vagrant 就是用来编排虚机和自动部署开发环境的,有了 Docker/Kubernetes 之后,直接用容器来编排应用确实更简单。但是还有一些工作,例如容器平台自身的安装,多节点集群的部署测试等,更方便用虚拟机解决。
Linux虚拟机安装(Vagrant)_第1张图片

3.2 vagrant实战

3.2.1 安装Virtualbox

VirtualBox 是一个免费开源的虚拟机,相对 VMware 来说更加小巧,个人比较喜欢。虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的。下载地址https://www.virtualbox.org/wiki/Downloads

  • 1.安装目录
    推荐安装到d:\java…
  • 2.配置
    Linux虚拟机安装(Vagrant)_第2张图片

3.2.2 安装vagrant

https://www.vagrantup.com/downloads下载最新版Vagrant,注意Vagrant没有图形界面,所以安装后也没有桌面快捷方式。

  • 1.安装
    推荐安装目录d:\java…
  • 2.配置
    vagrant的box默认下载用户的宿主目录\vagrant_box
    Linux虚拟机安装(Vagrant)_第3张图片

3.2.3 安装centos7虚拟机

3.2.3.1 下载box

可以在 http://www.vagrantbox.es/ 这里下载更多不同系统甚至是已经配置好环境直接可以用的box,虽然可以直接在Vagrant直接使用网址,由Vagrant自动下载安装,但是考虑到网络情况,还是建议自行先下载好。

3.2.3.2 vagrantfile
  • 1.初始化配置文件
    创建目录d:\java\virtual\s13\

在目录中打开命令提示符执行,产生配置文件

vagrant init centos

  • 2.修改配置文件如下
    Vagrantfile文件参考如下

Vagrantfile

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

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  (1..3).each do |i|
    config.vm.define vm_name = "s#{i}"  do |config|
        config.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--name", vm_name]
	    v.customize ["modifyvm", :id, "--memory", "8192"]
            v.customize ["modifyvm", :id, "--cpus", "2"]
        end
        config.vm.box = "centos_v1"
        config.vm.hostname =vm_name
        config.ssh.username = "root"
        config.ssh.password = "vagrant"
							#		config.ssh.shell = "powershell"
							#config.ssh.shell = "bash -l"
        config.vm.network :private_network, ip: "192.168.56.1#{i}"
	config.vm.provision :shell, :path => "bootstrap.sh"
    end
  end
end

bootstrap.sh

#!/usr/bin/env bash

# The output of all these installation steps is noisy. With this utility
# the progress report is nice and concise.

echo "Update /etc/hosts"
cat > /etc/hosts <.0.0.1       localhost

192.168.56.11 s1
192.168.56.12 s2
192.168.56.13 s2
EOF

echo "Disable iptables"
setenforce 0 >/dev/null 2>&1 && iptables -F

### Set env ###
echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.2.3.3 box文件

将.box文件放在和Vagrantfile、bootstrap.sh同级目录下

  • 1.列表本地box
D:\java\virtual\s13>vagrant box list
centos-travel (virtualbox, 0)
  • 2.添加box
    把刚才下载的box添加到vagrant中
D:\java\virtual\s13>vagrant box add centos_v1 ./centos_v1.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos_v1' (v0) for provider:
    box: Unpacking necessary files from: file://D:/java/virtual/s13/vagrant-centos-7.2.box
    box:
==> box: Successfully added box 'centos_v1' (v0) for 'virtualbox'!
  • 3.在执行列表
D:\java\virtual\s13>vagrant box list
centos-travel (virtualbox, 0)
centos_v1     (virtualbox, 0)
  • 4.删除box
D:\java\virtual\s13>vagrant box remove centos-travel
Removing box 'centos-travel' (v0) with provider 'virtualbox'..
3.2.3.4 安装虚拟机
  • 1.安装
    必须在vagrantfile所在的目录安装

vagrant up

Linux虚拟机安装(Vagrant)_第4张图片

  • 2.使用VirtualBox查看状态
    Linux虚拟机安装(Vagrant)_第5张图片
  • 3.使用FinalShell测试
    打开FinalShell
    Linux虚拟机安装(Vagrant)_第6张图片
    创建连接,相同方式创建三个虚拟机的连接
    Linux虚拟机安装(Vagrant)_第7张图片
    使用命令ip a查看IP地址,使用ping ip地址查看是否与其他虚拟机可以ping通

你可能感兴趣的:(linux,vagrant,运维)