赞
踩
【跟小嘉学 Linux 系统架构与开发】一、学习环境的准备与Linux系统介绍
本系列文章,我们将讲述Linux操作系统和Linux集群架构、Shell脚本编程、Linux系统开发等相关知识点。我们需要注意《鸟哥的linux私房菜》中文版才到第三版用的CentOS5,繁体版使用的CentOS7。
参考资料
《鸟哥的Linux私房菜繁体版》
《鸟哥的Linux私房菜简体版》
1984年 Richard Mathew Stalllman 发起 GNU 计划,我们目前使用的很多自由软件几乎直接或间接受益于该计划。该计划目的是建立一个自由、开放的 Unix 操作系统。
1985年,为了避免GNU所开发的自由软件被其他人所利用而成为专利软件, 所以他与律师草拟了有名的通用公共许可证(General Public License, GPL), 并且称呼他为copyleft。
GNU所开发的软件:
1984年,MIT与其他第三方首次发表了 X Window System,并且在1988年成立了非营利性质的 XFree86。
Linux 的内核是由 Linus Torvalds在1991年的时候给他开发出来的。Linux内核是一个用C语音编写的免费、可移植的内核,可以运行在各种计算机硬件设备上,包括个人电脑、服务器、嵌入式系统和移动设备。
Linux操作系统基于Unix的设计原则,具有多用户、多任务、多线程和分时操作的特点。它提供了一个强大的命令行界面,同时也有图形用户界面可供选择。
Linux操作系统具有高度的可定制性和灵活性,用户可以根据自己的需求进行个性化的设置和配置。它支持各种编程语言和开发工具,可以用于开发各种应用程序和服务。
Linux操作系统在服务器领域非常流行,被广泛用于云计算、大数据处理、网站托管等领域。它也是许多移动设备和嵌入式系统的基础,如Android智能手机操作系统就是基于Linux内核开发的。
Linux 是开源的操作系统内核,其特点如下
虚拟机是一种软件模拟实际计算机硬件和操作系统的环境。它可以在物理计算机上创建多个独立的虚拟计算机,每个虚拟计算机都可以运行不同的操作系统和应用程序。虚拟机可以提供一种隔离与独立性的环境,使多个操作系统和应用程序可以在同一台物理计算机上同时运行,从而提高资源利用率和灵活性。虚拟机技术广泛应用于服务器虚拟化、云计算、软件开发和测试等领域。
Hype-V是一种由微软开发的虚拟化技术,它是Windows操作系统中的一项功能。Hype-V允许用户在一台主机上运行多个虚拟操作系统,每个虚拟操作系统都可以在自己的独立虚拟环境中运行,仿佛是在一台独立的计算机上运行一样。
Hype-V可以提供许多优势,包括更好的资源利用、隔离性和安全性。它在企业环境中被广泛使用,可以帮助管理多个服务器和应用程序,并简化IT管理工作。
Hype-V也可以在个人计算机上使用,例如开发人员可以使用虚拟机来测试和运行不同版本的操作系统,或者在不同的开发和测试环境中运行多个虚拟机。
总的来说,Hype-V是一种虚拟化技术,可以在一台主机上同时运行多个虚拟操作系统,提供更好的资源利用和管理。
VMware 是一家虚拟化软件公司,成立于1998年,总部位于美国加利福尼亚州帕洛阿尔托。VMware 提供了一系列的虚拟化产品,包括虚拟机软件、云计算基础设施、云管理平台、安全产品等。其虚拟机软件能够在一台物理计算机上运行多个虚拟操作系统,实现资源的最优化利用和隔离保护。VMware 的产品广泛应用于企业的数据中心、云计算环境、网络安全和移动设备管理等领域。
Vbox(VirtualBox)是一款由Oracle公司开发的开源虚拟化软件,它可以在计算机上创建和运行虚拟机。
虚拟机是一种软件模拟的计算机系统,它可以在物理计算机上运行,并模拟出一个完整的计算机环境。虚拟机可以运行不同的操作系统和应用程序,而不会与物理计算机的操作系统和应用程序发生冲突。
Vbox可以创建多个虚拟机,并在其中安装不同的操作系统,例如Windows、Linux等。用户可以在虚拟机中运行各种应用程序,进行开发、测试、演示等操作,而不会影响物理计算机的正常运行。
Vbox提供了一系列功能,如虚拟磁盘管理、网络设置、共享文件夹等,可以方便地配置和管理虚拟机。它还支持快照功能,可以保存虚拟机的状态,方便用户在需要时快速恢复到某个特定的状态。
总之,Vbox是一款功能强大的虚拟化软件,可以帮助用户在物理计算机上创建和管理虚拟机,实现多操作系统的同时运行和管理
Vagrant是一个开源工具,用于构建和管理虚拟化开发环境。它可以在不同的虚拟化平台(如VirtualBox、VMware、Hyper-V等)上自动创建和配置虚拟机,并提供统一的命令行界面来管理虚拟机的生命周期。通过使用Vagrant,开发人员可以轻松地搭建和共享开发环境,确保团队成员之间的一致性,并简化开发、测试和部署过程。Vagrant还支持使用配置文件来定义虚拟机的配置和软件安装,使得环境的复制和重建变得简单和易于维护。
vagrant version
Vagrant 创建虚拟机需要先倒入镜像文件,也就是 box,默认存储在用户主目录下的 .vagrant.d 目录下,对于 windows 系统而已 就是:C:\Users\用户名.vagrant.d。
后续可能会用到比较多镜像,或者你的 C 盘空间比较紧缺,可以通过设置环境变量 VAGRANT_HOME 来设置该目录。在 Windows 系统中,可以这样操作:新建系统环境变量,环境变量名为 VAGRANT_HOME,变量值为 D:\VirtualBox.vagrant.d
Vagrant 镜像站:https://app.vagrantup.com/boxes/search
vagrant box add ubuntu/bionic64
该命令会网上下载镜像,比较慢
vagrant box list
vagrant init centos/7
vagrant init ubuntu/bionic64
创建 centos 或 ubuntu 虚拟机
该命令会在当前目录下,生成一个 Vagrantfile文件。
vagrant up
vagrant status
vagrant ssh
该虚拟机的默认用户名 root、vagrant 密码都是vagrant,默认是无密码免登录。
vagrant ssh-config
使用该命令可以查看 ssh 的配置信息,查看 private-key
vagrant halt
直接在 VirtualBox 上关闭虚机,或者直接在虚机内部执行 poweroff 命令也都是可以的。
vagrant suspend
vagrant resume
不管虚机是关闭还是暂停状态,甚至是 error 状态,都可以执行 vagrant up 来让虚机恢复运行。
vagrant reload
vagrant destroy
该配置文件使用的 Ruby 语法,因为 Vagrant 就是用 Ruby 编写的。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
end
config.vm.box 对应的就是虚机的镜像,也就是 box 文件,这是唯一必填的配置项
所谓的端口转发,就是把虚拟机的某个端口 映射到宿主机到端口这样,就可以在宿主机上访问虚拟机的服务
config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
配置私有网络 就是 VirtualBox 的主机网络,也就是 HostOnly 网络。
config.vm.network "private_network", ip: "192.168.33.10"
如果这个网段的主机网络在 VirtualBox 中不存在,Vagrant 会在启动虚机时自动创建。所以,如果你想要利用已有的网络,请查看现有主机网络配置:
私有网络实际也可以直接使用 DHCP,但是并不推荐
config.vm.network "private_network", type: "dhcp"
这里通常对应的就是桥接网络。实际开发场景下,我们极少会需要把虚机暴露到公共网络上,这样既不安全,也没有必要。
默认所起的第 1 个 NAT 网络已经保证了虚机可以上互联网,而私有网络保证了宿主机和虚机,以及虚机和虚机之间的通信。如果有对外暴露服务的需求,还可以使用端口转发。
config.vm.network "public_network"
config.vm.synced_folder "../data", "/vagrant_data"
vagrant 提供了多种同步方式,默认使用 vboxsf 挂载文件系统,需要安装如下插件。
vagrant plugin install vagrant-vbguest
也可以使用 NFS 方式
vagrant 默认是使用VirtualBox的共享的方式实现两个系统之前文件的共享, 该共享方式访问速度比较慢, 所以, vagrant作为web开发环境时, 访问会比较慢。
vagrant官方的文档上建议优化该io性能问题的方法是使用nfs,安装 nfs 插件
vagrant plugin install vagrant-winnfsd
修改配置
config.vm.synced_folder "/vBox/Centos7/wwwroot", "/www/wwwroot", type: "nfs"
config.vm.synced_folder "../data", "/vagrant_data", type: "rsync"
VirtualBox 等虚拟机软件在 Vagrant 中被称为 Provider,虚机的规格等配置是和 Provider 相关的。因为 VirtualBox 用的最多,所以默认的配置提示是以 VirtualBox 举例。
把中间那一段取消注释,其它的可以删掉:
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
# Customize the amount of memory on the VM:
vb.cpus = 2
vb.memory = "1024"
end
vb.gui = true 是在虚机启动时自动打开 VirtualBox 的图形界面,这对服务器来说没什么用,可以留也可以直接删掉。
添加 CPU 的配置,同时修改内存大小:这里将内存修改为2048MB,cpus数量是2
内存的大小单位是 MB,值是数字,默认的示例中有引号,实际也可以不加
Provision 是指在虚机初次创建的时候,Vagrant 自动去执行的构造任务,比如安装软件,更新系统配置等。
因为 box 往往只提供基础的系统(虽然我们可以自定义 box,但是并不是每次都要这么做,而且这样做会丧失一部分灵活性),有些东西仍然需要在创建虚机的时候完成。
什么情况下会触发 provision的操作
config.vm.provision "shell", inline: <<-SHELL
apt-get update
yes | apt install gcc
SHELL
vagrant-snap 是一个用于快速备份和恢复 Vagrant 虚拟机的工具。对于开发者而言,Vagrant 可以提供一个标准化的开发环境,但手动配置和维护这些环境可能会浪费大量时间。vagrant-snap 提供了一种简单的方式来创建、管理和恢复 Vagrant 虚拟机的快照,从而提高了开发效率。
功能特性
vagrant plugin install vagrant-snap
vagrant snap take <snapshot-name>
vagrant snap restore <snapshot-name>
# 1、停止正在运行的 vagrant 虚拟机
vagrant halt
# 2、打包当前环境为一个box
vagrant package ---output my_backup.box
# 3、添加打包的box到Vagrant的box列表中:
agrant box add my_backup.box my_backup.box
# 4、初始化并使用备份的 box
vagrant init my-backup-box
vagrant up
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。