文章目录
1 什么是Linux
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
1.1 Linux特点
1.Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
2.Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
1.2 Linux基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
1.3 什么是Linux虚拟机
提到Linux,就会用到Linux虚拟机,那什么是Linux虚拟机呢?一般来说,在开发时Linux虚拟机都是安装到Window系统下的,虚拟机是独立于Window的一个完整的操作系统。它和Window一样,有CPU、内存、IP地址等等。在Linux虚拟机里面可以安装IDEA、Eclipse等开发工具(它们的运行环境都是Linux版本的jdk和其他Linux开发环境)。Window和Linux文件可以共享和进行共同开发。
2 Linux被用在那些地方
1.桌面应用
linux在桌面场景下应用不多,这个场景下一般还是使用windows
2.服务端(后端)
电商,门户网站后端服务,一般采用linux作为操作系统,java,c++,python,go,运行和部署在linux服务。
3.嵌入式
linux最小和最核心的版本只有几百K,智能物联设备方便嵌入式开发。
4.云计算
运维和部署场景,使用linux。
3 Linux如何去使用
1 agrant 是一个非常好用的工具,可以用它来在单台物理机器编程管理多个虚拟机(vms)。其支持原生VirtualBox,并同时提供了对VMware Fusion、Amazon EC2虚拟机集群的插件支持。
2 vagrant提供了极易使用、基于Ruby的内部DSL,允许用户使用它们的配置参数定义一个或多个虚拟机。另外,对于自动部署,vagrant支持多种机制:可以使用puppet,chef或者用于在vagrant配置文件中定义的所有虚拟机上自动安装软件程序和配置的shell脚本等。
3 vargrant和vmware相比优点在于,vargrant可以一次创建多个虚拟机,且可以自己定制box供多人使用。vmware一次只能创建一个虚拟机。
3.1 Vargrant
3.1.2 什么是Vagrant
1.Vagrant是一个比较流行的虚拟机管理软件,使用Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等,Vagrant集成了主流的虚拟机管理工具vmvare 和 Virtualbox,默认使用Virtualbox。
2.Vagrant 的精髓在一个 Vagrantfile 里面,和 Docker 的 Dockerfile 功能上一样。我们只需要把需要安装部署的步骤写在 Vagrantfile 里面,便可以实现轻松部署。Vagrant 还支持把当前系统做成一个.box 后缀命名的镜像,类似 Docker 的 image,可轻松实现环境的移植。
3.Vagrant 可以把配置好的环境打包成一个box,分享给其他人直接使用。
4.在容器流行之前,Vagrant 就是用来编排虚机和自动部署开发环境的,有了 Docker/Kubernetes 之后,直接用容器来编排应用确实更简单。但是还有一些工作,例如容器平台自身的安装,多节点集群的部署测试等,更方便用虚拟机解决。
5.补充一点,前面讲到什么是Linux虚拟机和centos.box,那么Linux虚拟机和box有什么关系呢?
简单的书说,不同的box可以产生不同的Linux虚拟机,你的box里面是Java和MySQL的环境,那么box产生的就是包含Java和MySQL的Linux虚拟机。二者是类和对象的关系。
3.1.3 vargrant主要工作原理
1 首先你需要先初始化vargrantfile文件,这个文件里面包含了你需要的配置,CPU、内存、网卡等,还有你所需环境等,例如Java、MySQL等。
2 这个配置文件会将这些配置信息发给云服务器仓库,云服务器仓库返回信息,这时可以从云服务器仓库下载你所需的配置信息的box。
3 这个下载完的box可以一键导入到本地。
4 这个box可以自己使用或者发给共同开发人员,这样其他人就不需要在重新配置下载了,这样极大方便了开发。
3.2 vargrant安装及配置
3.2.1 安装Virtualbox
VirtualBox 是一个免费开源的虚拟机,相对 VMware 来说更加小巧,个人比较喜欢。虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的。下载地址https://www.virtualbox.org/wiki/Downloads
3.2.2 安装目录及配置
1 推荐安装在D盘
2 配置
3.2.3 安装vargrant
1 https://www.vagrantup.com/downloads下载最新版Vagrant,注意Vagrant没有图形界面,所以安装后也没有桌面快捷方式。
2 推荐安装在D盘。
3.2.4 配置
3.3 安装centos虚拟机
3.3.1 下载box
可以在 http://www.vagrantbox.es/ 这里下载更多不同系统甚至是已经配置好环境直接可以用的box,虽然可以直接在Vagrant直接使用网址,由Vagrant自动下载安装,但是考虑到网络情况,还是建议自行先下载好。
3.3.2 初始化文件
1 新建文件夹,目录中不能能有中文。
2 用cmd打发DOS窗口。
3 在DOS窗口中用cd命令进入刚刚新建的文件里面的目录。
4 在DOS窗口中执行命令vagrant init centos,产生配置文件。
5 修改配置文件,改成自己所需内存、网卡等等配置信息。
6 例子如下:
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
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.7#{i}"
config.vm.provision :shell, :path => "bootstrap.sh"
end
end
end
截图如下:
7 配置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 <<EOF
127.0.0.1 localhost
192.168.56.71 s1
192.168.56.72 s2
192.168.56.73 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.3.3 准备box
1 用vargrant boxl ist命令查看本地box。
2 将本地box添加到vargrant中
F:\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://F:/java/virtual/s13/vagrant-centos-7.2.box
box:
==> box: Successfully added box 'centos_v1' (v0) for 'virtualbox'!
3.3.4 安装虚拟机
1 用vargrant up安装虚拟机。
2 用MobaXterm软件连接刚才装的虚拟机。
3.3.5 常用命令
#启动Vagrantfile(s1,s2,s3)配置所有虚拟
vagrant up
#启动具体一个虚拟机
vagrant up s1
vagrant halt #关闭所有
vagrant halt s1
3.4 自定义box
安装了java开发环境
● JDK
● Mysql
● redis
● Elasticsearch
● RocketMQ
● mion
● …
能不能把已安装的虚拟机打包成一个自定义的box,分我们分享管理我们的虚拟机?
3.5 简单的自定义box实例
1 标准的虚拟机box没有vim,在虚拟机里面用命令yum install vim -y安装有vim命令的box。
2 打包当前虚拟机,产生一个自定制的box
#关闭虚拟机
vagrant halt s1
#打包当前虚拟机
vagrant package --base s1 --output centos_v2.box
3 删除现有虚拟机
vagrant halt
vagrant destroy # 删除所有的虚拟机
vagrant destroy s1 #删除s1
4 把centos_v2添加到vagrant中
#列表
F:\java\virtual\s13>vagrant box list
centos_v1 (virtualbox, 0)
#添加
F:\java\virtual\s13>vagrant box add centos_v2 ./centos_v2.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos_v2' (v0) for provider:
box: Unpacking necessary files from: file://F:/java/virtual/s13/centos_v2.box
box:
==> box: Successfully added box 'centos_v2' (v0) for 'virtualbox'!
#列表
F:\java\virtual\s13>vagrant box list
centos_v1 (virtualbox, 0)
centos_v2 (virtualbox, 0)
5 修改Vagrantfile,设置box使用centos_v2
6 使用vargrannt up命令安装了vim的box安装新的虚拟机。
7 进入虚拟机查看vim,已经安装好了。