首页
友情链接
点点滴滴
关于本站
秋码记录
一个游离于山间之上的Java爱好者 | A Java lover living in the mountains
累计撰写
137
篇文章
累计创建
297
个标签
累计创建
45
个分类
栏目
首页
友情链接
点点滴滴
关于本站
搜索
分类
虚拟机
虚拟机 Linux 安装 JDK(Vagrant 之二 CentOS7 篇)
我们已然在上一篇讲解了如何快速的搭建一个Linux虚拟机,通过vagrant命令化工具,我们很方便的构筑了虚拟机,那么,我们所搭建出来的Linux系统主要是为了调试产品,以便产品在部署生产环境之后,能够顺利运行,这才是我们在本地电脑或局域网安装虚拟机的最终目的。 由于你服务端程序所选的program language(编程语言)因素,造成了虚拟机或将要部署到生产环境上的所必要基础环境差异化,这是无可厚非的。 闲话少叙,切入正题。本篇除了在安装JDK与其他服务端有所差异之外,其他mid-ware(中间件)安装方式都是一样的,没有什么不同,包括但不限于redis、MariaDB、mongodb等。 安装JDK 首先,我们进入Oracle官网:https://www.oracle.com/cn/java/technologies/downloads/ ,找到你项目所对应的JDK版本,系统当然选择的Linux。 当你再看到下图时,请你暂时别笑,虽然现在JDK最新的LTS(长时间支持)是JDK21,而我呢,却还在下载JDK8,之所以选择JDK8,那是因为项目是早期的,我相信有很多与我相似情形的。 我现在的做法便是,保持生产环境能够稳定运行,随后则在本地迁移到JDK17,直至项目整体架构迁移完成,在虚拟机调试没有太大的问题之后,再行更改生产环境的JDK版本。 我们将下载下来的JDK,移动到宿主机映射到虚拟机的文件夹内,这样就将宿主机文件成功的挂载到虚拟机里面了。 那么接下来,我们打开VirtualBox这款虚拟化工具,之后进入到虚拟机的路径,调出Terminal,输入vagrant up来启动虚拟机。 当虚拟机启动成功后,我们可以使用vagrant ssh进行连接虚拟机,也就是进入虚拟机,对其操作。 进入到虚拟机后,我们由vagrant用户切换到root用户。 若你对root用户如何修改密码,可以查看我的上一篇文章,倘若你又不想链接来链接去的,那么你可以使用sudo passwd root来修改root密码,输入你新的root密码即可。 在安装JDK之前,我们有必要对当前虚拟机或将要部署到生产环境检测是否默认安装了JDK,因为Linux某些分支会在系统默认安装了JDK。 java -version 随后我们在虚拟机中创建一个java文件夹。 mkdir /usr/java 创建好java文件夹之后,我们cd到宿主机文件挂载虚拟机的路径下,对刚刚下载好的JDK的tar包进行解压。 tar -zxvf jdk-8u421-linux-x64.tar.gz 等解压完成了,我们将解压好的整个文件移动到刚刚创建好的路径里,也就是移动到/usr/java/这个路径下。 mv jdk1.8.0_421/ /usr/java/ 那么,接下来将要配置JDK的环境变量了,关于这一点,相信很多Java Engineer是再清楚不过了。 配置JDK环境变量 要想在Linux系统中配置JDK环境,只需对/etc/profile文件进行追加java相关信息即可。 export JAVA_HOME=/usr/java/jdk1.8.0_421 export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 先按键盘上的Ins(插入键),它的位置处在Del(后置删除键)的上方,让profile处于INSERT(编辑)状态,才能对文件进行修改。 配置好了JDK信息后,我们需要保存此次所做的修改,故而,我们敲下键盘上的Esc,它的位置是在键盘的左上角。 紧接着,我们继续敲下:wq!几个字符,这才保存了刚刚对profile文件所做的任何修改。而加不加!,其实都可以保存,但加了!则表示是强制退出。 这时你便可以在当前Terminal输入java -version命令,以验证你是否安装java成功,然而当你Enter(回车键)之后,却出现了之前系统没有安装java的状况。 可是不过几秒钟的时间,你忽然拍了前额,笑道,“居然忘记了这一步……”。 那么,你究竟是遗漏了哪一步呢?而又为什么你能在几秒钟反应过来呢? 但凡你修改了系统的相关配置文件,在当前Terminal是不会生效,若想配置生效,除非打开一个新的Terminal,可倘若你不想弹出另外的Terminal呢,你就要在当前Terminal验证呢!那么你只需输入以下命令即可: source /etc/profile
2024-08-29
[虚拟机]
怎样快速搭建 Linux 虚拟机呢?(vagrant 篇)
作为一名Coder(程序员或码农),供职于中小型互联网公司,而你恰恰偏向于服务端,那么,产品部署在生产环境的艰巨任务,便毫无疑问的落在你身上了。 只有大厂(大型互联网)企业才有运维部,而能进大厂的显然是少部分人,大多数Coder终究还是混迹于初创或中小型互联网公司,一名服务端 Coder往往都是身兼数职,甚至有可能干掉了frontend(这也就是初创或·中小型·互联网公司在Job Descriptio[职位描述]中,要求你在懂得服务端技术知识,还需熟悉frontend相关内容),当然咯,也有些中小型公司会分工明确,虽然没设立什么运维部,但起码也有一两个深耕于Linux 服务器多年的运维人员。 甭管你是Full Stack engineer(全栈),抑或是backend(服务端),总逃不掉要将开发完成的程序部署到服务器上吧!由于开发环境和生产环境之间存在着差异,从而导致了你按照开发环境所需的必要准备,在生产环境开始部署程序,出乎意料的一幕总能让你吃惊不已,你挠着头,口中喃喃说道,“这不可能吧,都按着必要环境部署的,不应该啊!……” 所以嘛,在把程序部署到生产环境之前,我们有必要在本地安装虚拟机,而这虚拟机所对应的系统便是生产环境上的系统,之后在该虚拟机上安装程序运行的必要条件,随后,在虚拟机环境里调试程序,等一切调试妥当后,方可部署到生产环境中。 安装 Vagrant 安装 VirtualBox 在安装Vagrant之前,我们必须安装一个虚拟化工具,它是跨平台的,也就是说,搭建一个虚拟机,安装了它就可以,Vagrant可以到一边凉快去了。 既然它(VirtualBox)本身就可以搭建一个虚拟机,而为什么又要Vagrant呢?对于这个问题,我不置可否,你回过头看看本文的标题,其中有个关键词——快速(虽然有点夸张的成分),你或许便能明白了。 至于怎么安装 VirtualBox,不在本文的范畴内,况且它跟其他软件安装方式一样,一路Next(下一步)下去 。 VirtualBox 官方地址:https://www.virtualbox.org/ 安装 Vagrant 在安装完VirtualBox,接着安装Vagrant,而它的安装也是同安装其他软件一样,一路Next(下一步)下去,除非你要修改安装路径。 Vagrant官方地址:https://www.vagrantup.com/ 。 安装好Vagrant后,可以在Terminal中输入vagrant version,便会输出当前安装的Vagrant版本信息。 初始化虚拟机 我们在某个空文件夹下,调出Terminal,并输入vagrant init centos/7 当初始化成功之后,会在当前目录下自动生成一个Vagrantfile配置文件。 你可在这里:https://portal.cloud.hashicorp.com/vagrant/discover 找到你想要的系统。 我们启动刚刚安装好的VirtualBox软件,可以看出目前是没有任何虚拟机。 我们再次回到Vagrant初始化虚拟机的Terminal中,继续输入vagrant up命令,用于启动虚拟机。 当我们转过身,去看VirtualBox,明显有一个虚拟机正在运行。 连接到虚拟机 我们可以在当前Terminal中,键入vagrant ssh进入虚拟机,默认是vagrant用户。 可是有时在Linux安装软件时,是需要root权限的,那么,总得使用root来操作吧! sudo passwd root 再输入两次密码后,便可以使用su root切换到root用户了。 退出虚拟机 可是使用logout退出虚拟机,回到宿主机。 关闭虚拟机 在回到宿主机下,方能使用vagrant的所有命令。 vagrant halt 配置私有网络(内部网络/局域网网络) 在虚拟机搭建起的服务,总得需要外部来访问吧,这其中当然就包括宿主机,所以,就需要就知道虚拟机的IP地址。 我们打开前面用Vagrant init初始化的虚拟机,自动为我们生成了一个vagrantfile配置文件。 打开注释。 config.vm.network "private_network", ip: "192.168.33.10" 还需配置一个使用频繁的文件传输功能,毕竟,我们在宿主机开发的程序,需要传输到虚拟机进行部署调试,那么,宿主机与虚拟机之间的文件传输就再所难免,在使用过VirtualBox 或VMware等虚拟化工具时,文件传输总是令人头疼。然而,Vagrant通过文件夹映射,实现了宿主机与虚拟机之间能很好的进行文件传输。 还是在vagrantfile配置文件中,去掉文件夹间的映射前的注释。 config.vm.synced_folder "./data", "/vagrant_data" ./data是在宿主机下的文件夹,也就是与vagrantfile配置文件同属一个路径下。 /vagrant_data是虚拟机内的文件夹。
2024-08-24
[虚拟机]