Linux入门
1.linux的简介
Linux是一个操作系统,同时是一个自由软件,是免费的、源代码开放的,编制它的目的是建立不受任何商品化软件版权制约的、全世界都能自由使用的Unix兼容产品。
1.1应用场景
1.1.1桌面应用
linux在桌面场景下应用不多,这个场景下一般还是使用windows
1.1.2服务端
电商,门户网站后端服务,一般采用Linux作为操作系统,java,c++,python,go,运行和部署在Linux服务
1.1.3嵌入式
Linux最小和最核心的版本只有几百K,智能物联设备方便嵌入式开发
1.1.4云计算
运营和部署场景,使用Linux
2Vagrant
2.1虚拟机
虚拟机:java中的虚拟机是JVM
2.1.1什么是虚拟机
虚拟机是一类能够通过软件模拟其他系统行为,做到虚拟化、跨平台等目的的一类的软件。市面上有很多虚拟机产品,如VMware虚拟机、Java虚拟机,它们都有很好的虚拟化能力,我们可以在软件内运行其他操作系统。
2.2 Vagrant的介绍
1.Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用。Vagrant就是为了方便的实现虚拟化环境而设计的,使用Ruby开发,基于VirtualBox等虚拟机管理软件的接口,提供了一个可配置、轻量级的便携式虚拟开发环境。使用Vagrant可以很方便的就建立起来一个虚拟环境,而且可以模拟多台虚拟机,这样我们平时还可以在开发机模拟分布式系统。
2.Vagrant还会创建一些共享文件夹,用来给你在主机和虚拟机之间共享代码用。这样就使得我们可以在主机上写程序,然后在虚拟机中运行。如此一来团队之间就可以共享相同的开发环境,就不会再出现类似“只有你的环境才会出现的bug”这样的事情。我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。
3.团队新员工加入,常常会遇到花一天甚至更多时间来从头搭建完整的开发环境,而有了Vagrant,只需要直接将已经打包好的package(里面包括开发工具,代码库,配置好的服务器等)拿过来就可以工作了,这对于提升工作效率非常有帮助。
4.Vagrant不仅可以用来作为个人的虚拟开发环境工具,而且特别适合团队使用,它使得我们虚拟化环境变得如此的简单,只要一个简单的命令就可以开启虚拟之路。
3 Vagrant安装和配置
3.1安装VirtualBox
VirtualBox 是一个免费开源的虚拟机,相对 VMware 来说更加小巧,个人比较喜欢。虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的。下载地址
链接: https://www.virtualbox.org/wiki/Downloads
3.2 安装Vagrant
下载最新版Vagrant,注意Vagrant没有图形界面,所以安装后也没有桌面快捷方式,根据提示一步步安装。
3.2.1软件配置
vagrant的box默认下载用户的宿主目录\vagrant_box下,因此需要修改到空间大的盘符,做法如下
- 打开电脑环境变量
- 在系统变量中添加变量名
- 变量值为Vagrent的根目录
- 确定即可
3.3下载需要的box
前面讲了box是一个操作系统环境,实际上它是一个zip包,包含了Vagrant的配置信息和VirtualBox的虚拟机镜像文件.我们这一次的实战使用官方提供了一个box:Ubuntu lucid 64 http://files.vagrantup.com/lucid64.box
或者其他的box点击下载
3.4配置文件设置
3.4.1初始化配置文件
- 创建一个目录注意:该目录不能与环境变量中的盘符相同
E:\virtual\s13
- 在目录中执行
vagrant init centos
产生配置文件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.7#{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 <<EOF
127.0.0.1 localhost
192.168.56.71 s1
192.168.56.72 s2
192.168.56.73 s3
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.5准备并使用box文件
3.5.1把box加入到vagrant
把刚才下载的box添加到vagrant中在命令控制符中执行代码:
vagrant box add centos_v1 ./centos_v1.box
3.5.2 查看box信息列表`
vagrant box list
3.5.3 安装虚拟机
vagrant up
3.5.4 测试连接
使用MobaXterm连接刚才安装的3个服务器
192.168.56.71,
192.168.56.72,
192.168.56.73
在Linux中使用如下代码
ping 192.168.56.71
ip addr #查看ip地址
hostname #服务器名
结果为: