一、centos7安裝jdk
1、下載jdk安裝文件
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2、解壓jdk到安裝目錄
$ mkdir /usr/java
$ touch /vagrant/jdk-install.log
$ tar -zxvf /vagrant/jdk-8u181-linux-x64.tar.gz -C /usr/java >> /vagrant/jdk-install.log
$ tail -n 10 /vagrant/jdk-install.log
$ ls -l /usr/java

tar-jdk
3、設(shè)置環(huán)境變量到/etc/profile
$ JAVA_HOME=/usr/java/jdk1.8.0_181
$ JAVA_BIN=/usr/java/jdk1.8.0_181/bin
$ echo "export JAVA_HOME="$JAVA_HOME >>/etc/profile
$ echo "export JAVA_BIN="$JAVA_BIN >>/etc/profile
$ echo "export PATH=\$PATH:\$JAVA_BIN" >>/etc/profile
$ echo "export CLASSPATH=.:"\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib >>/etc/profile
$ tail -n 10 /etc/profile

set-etc-profile
4、驗(yàn)證安裝
$ source /etc/profile
$ java -version

java-version
二、通過(guò)vagrant一鍵式安裝
將一中的腳本執(zhí)行過(guò)程制作成腳本,在vagrantfile中直接引用執(zhí)行腳本,一鍵安裝
shell腳本jdk-install.sh如下:
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>jdk壓縮包路徑>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
echo $JDK_FILE
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>jdk安裝路徑>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
echo $JDK_INSTALL_PATH
echo ">>>>>>>>>>>>>>>>>>>創(chuàng)建目錄并解壓jdk壓縮包到安裝路徑>>>>>>>>>>>>>>>>>>"
echo $JDK_INSTALL_DIR
mkdir $JDK_INSTALL_DIR
touch $JDK_INSTALL_DIR/jdk-install.log
tar -zxvf $JDK_FILE -C $JDK_INSTALL_DIR >> $JDK_INSTALL_DIR/jdk-install.log
tail -n 10 $JDK_INSTALL_DIR/jdk-install.log
ls -l $JDK_INSTALL_DIR
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>設(shè)置環(huán)境變量>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
JAVA_HOME=$JDK_INSTALL_PATH
JAVA_BIN=$JDK_INSTALL_PATH/bin
echo $JAVA_HOME
echo $JAVA_BIN
echo ">>>>>>>>>>>>>>>>>>>>>>>設(shè)置環(huán)境變量到/etc/profile>>>>>>>>>>>>>>>>>>>>>>"
echo "export JAVA_HOME="$JAVA_HOME >>/etc/profile
echo "export JAVA_BIN="$JAVA_BIN >>/etc/profile
echo "export PATH=\$PATH:\$JAVA_BIN" >>/etc/profile
echo "export CLASSPATH=.:"\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib >>/etc/profile
tail -n 10 /etc/profile
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>source一下讓設(shè)置生效>>>>>>>>>>>>>>>>>>>>>>>>>"
source /etc/profile
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>看下java命令是否可用>>>>>>>>>>>>>>>>>>>>>>>>>>"
java -version
javac -version
echo ">>>默認(rèn)的公鑰在啟動(dòng)的時(shí)候會(huì)被移除,作為base的box,用默認(rèn)公鑰方便ssh登錄>>>"
curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys
Vagrantfile內(nèi)容如下:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
#設(shè)置虛擬機(jī)的box
config.vm.box = "centos7-base"
#設(shè)置虛擬機(jī)的主機(jī)名
config.vm.hostname = "centos7-base-jdk"
#Virtualbox相關(guān)配置
config.vm.provider "virtualbox" do |v|
#設(shè)置虛擬機(jī)的名稱(chēng)
v.name = "centos7-base-jdk"
#設(shè)置虛擬機(jī)的內(nèi)存大小為2G
v.memory = 2048
#設(shè)置虛擬機(jī)的CPU個(gè)數(shù)
v.cpus = 2
end
#使用shell腳本進(jìn)行軟件安裝和配置
config.vm.provision "shell" do |s|
s.path = "jdk-install.sh"
s.env = {JDK_FILE: "/vagrant/jdk-8u181-linux-x64.tar.gz",
JDK_INSTALL_DIR: "/usr/java",
JDK_INSTALL_PATH: "/usr/java/jdk1.8.0_181"}
end
end
vagrant up拉起虛擬機(jī),自動(dòng)安裝jdk, 安裝結(jié)果:

java-version
三、打包c(diǎn)entos7-base-jdk成box,并加入到box list
創(chuàng)建一個(gè)目錄,然后打開(kāi)命令行,打包虛擬機(jī)成box,–base的參數(shù)必須是安裝的centos7的虛擬機(jī)名稱(chēng),本次是centos7-base-jdk。
再將生成的box添加到box list中,后續(xù)就可以直接使用centos7-base-jdk8作為鏡像創(chuàng)建虛擬機(jī)了。
$ vagrant package --output centos7-base-jdk8.box --base centos7-base-jdk
$ vagrant box add centos7-base-jdk8 centos7-base-jdk8.box
$ vagrant box list