❤️ Vagrant 一键安装任意系统 ,甚至 Oracle 数据库 !!!☀️ 建议收藏 ᕕ( ᐛ )ᕗ

❤️ Vagrant 一键安装任意系统 ,甚至 Oracle 数据库 !!!☀️ 建议收藏 ᕕ( ᐛ )ᕗ写在最前面,如果是新手不会安装Oracle数据库,可以直接下载我打包好的 box 直接安装,打开即可使用Oracle数据库!!!

这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战

🌲 前言

写在最前面,如果是新手不会安装Oracle数据库,可以直接下载我打包好的 box 直接安装,打开即可使用Oracle数据库!!!

⭐️ Box 下载方式:luciferliu/oracle11g ⭐️

哈哈 😄,我又来偷懒了,之前写了一版 ❤️ Oracle一键安装脚本 ❤️,大大减少了平时用于安装数据库花费的时间。但是,安装Linux系统还是需要耗费时间,而且是重复的点击动作,太不自动化了。

于是,我就开始在网上冲浪 🏄🏻,发现了ansible,cobbler,vagrant等等可用于脚本自动安装Linux主机的方法。毅然决然,我选择了入门最快,最简单的 Vagrant

就这样,我开始折腾了。先是成功使用Vagrant在电脑上安装了Linux系统,然后融合之前的Oracle一键安装脚本,最终成功 🎉 实现了 Vagrantg 一键安装Oracle数据库,彻底释放双手 🙌🏻!

🪐 Vagrant使用方式可参考:

🌏 Oracle一键安装脚本使用可参考:

好勒,哔哔半天了,正文开始~ ヾ(◍°∇°◍)ノ゙ 在这里插入图片描述 💻 本文需要用到的软件:

  • Vagrant
  • VirtualBox

注意:📢 请提前安装好~

一、⭐️ Vagrant安装Linux系统 ⭐️

第一步,当然是安装Linux系统啊,没有安装Vagrant的朋友,去 下载页面 下载安装一下吧,很简单的。不会玩的,往上翻一点看教程,我就默认大家已经安装完啦👍🏻~

1、安装目录

首先需要创建一个目录,用来放置 Vagrantfile 和安装介质:

mkdir /Volumes/DBA/vagrant/centos79 -p

Windows系统的朋友👬🏻,我就不说怎么创建目录啦~ 在这里插入图片描述

2、下载 Vagrant box

建议直接去 Vagrant box官方下载页面 搜索下载,本文使用 Centos7.9版本。 在这里插入图片描述 当然是选下载量最高,更新比较靠近的哇 🤩~

点击进去,我们选择 virtualbox 版本进行下载: 在这里插入图片描述 注意:这里有很多版本支持,如果使用VMware或者Parallels也可以的哈~

3、Vagrant添加Box

下载完之后,我这边为了便于分辨,将文件改名为 centos7.9在这里插入图片描述 使用 vagrant box add 命令添加下载好的box:

vagrant box add /Users/lpc/Downloads/centos7.9 --name centos79
vagrant box list

注意:/Users/lpc/Downloads/centos7.9 为 box 存放位置,–name centos79 是指创建一个逻辑名称。 在这里插入图片描述 已成功添加 box,接下来需要配置 Vagrantfile 文件和上传安装介质。

4、配置Vagrantfile文件

这里我就不讲解Vagrantfile如何配置,具体可以看官方文档,配置如下:

cd /Volumes/DBA/vagrant/centos79
cat <<EOF>Vagrantfile Vagrant.configure("2") do |config| config.vm.box = "centos79" config.vm.provision :shell, path: "/Volumes/DBA/vagrant/centos79/scripts/ora_preinstall.sh" config.vm.synced_folder "/Volumes/DBA/vagrant/centos79", "/vagrant" config.vm.network :forwarded_port, guest: 1521, host: 1521 config.vm.network :forwarded_port, guest: 22, host: 22 config.vm.network "public_network", ip: "192.168.1.120" config.vm.provider "virtualbox" do |vb| vb.name = "orcl1" vb.memory = 4196 vb.cpus = 2 end end EOF

在这里插入图片描述 这里简单解释一下配置文件中的几个参数:

  • config.vm.box = “centos79” 指定上文添加的box逻辑名称,用于安装Linux系统
  • config.vm.provision :shell, path: “/Volumes/DBA/vagrant/centos79/scripts/ora_preinstall.sh” 配置用于安装完Linux系统后自动执行shell脚本
  • config.vm.synced_folder “/Volumes/DBA/vagrant/centos79”, “/vagrant” 映射本地目录到Linux主机目录
  • config.vm.network :forwarded_port, guest: 1521, host: 1521 映射Linux主机1521端口到本机端口1521
  • config.vm.network :forwarded_port, guest: 22, host: 22 映射Linux主机22端口到本机端口22
  • config.vm.network “public_network”, ip: “192.168.1.120” 配置主机网络为192.168.1.120,建议与本机做桥接,可用于上网
  • config.vm.provider “virtualbox” do |vb| 配置虚拟机程序为virtualbox,如果是paralles则修改为parallels即可
  • vb.name = “orcl” 配置主机名
  • vb.memory = 4196 配置主机内存
  • vb.cpus = 2 配置主机CPU

5、准备安装介质

在开始创建的目录下,创建 soft 文件夹,并上传需要的安装介质: 在这里插入图片描述 这里说一下以下文件的作用:

  • CentOS-7.9-x86_64-Everything-2009.iso Centos iso镜像文件,用于安装本地YUM源,如果能联网可以不需要
  • OracleShellInstall.sh Oracle一键安装脚本,可在Github下载,持续更新🔥,欢迎👏🏻 Star
  • p13390677_112040_Linux-x86-64_1of7.zip
  • p13390677_112040_Linux-x86-64_2of7.zip Oracle 11GR2 Database 安装包
  • p31537677_112040_Linux-x86-64.zip Oracle 11GR2 Database PSU补丁包
  • p6880880_112000_Linux-x86-64.zip Oracle OPatch补丁包
  • rlwrap-0.42.tar.gz 上下文切换软件,可选安装,非必须

这里安装介质就准备好啦,放在这里就行了 😄 ~

6、编写Vagrantfile中定义的Shell脚本

为了实现Linux安装成功后继续自动安装Oracle数据库,因此需要提前准备shell脚本用于Linux系统安装后调用执行。

mkdir -p /Volumes/DBA/vagrant/centos79/scripts
cd /Volumes/DBA/vagrant/centos79/scripts
cat <<EOF>ora_preinstall.sh #change root password echo oracle | passwd --stdin root #change sshd_config sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config systemctl reload sshd.service #mkdir software dir mkdir /soft #cp software to softdir cp /vagrant/soft/* /soft #mount iso to mnt dir mount -o loop /soft/*iso /mnt #chmod shell script chmod +x /soft/OracleShellInstall.sh #install oracle database cd /soft ./OracleShellInstall.sh -i 192.168.1.120 -opa 31537677 -installmode single -dbv 11g EOF

这里稍微解释一下哈,脚本中的步骤:

  • a.修改root用户密码
  • b.配置ssh服务允许输入密码连接
  • c.Linux主机中创建soft目录用于存放安装介质
  • d.复制映射目录/vagrant/soft下的安装介质到/soft目录下
  • e.挂载centos7.9的iso镜像文件
  • f.授权Oracle一键安装脚本可执行权限
  • e.进入/soft目录,根据提前配置好的一键安装参数,执行安装Oracle数据库

在这里插入图片描述 至此,所有的前置配置都已完成,下面就是见证奇迹的时刻啦 ᕕ( ᐛ )ᕗ ~

二、❤️ Vagrant启动一键安装Oracle ❤️

1、😏 很简单,一行短短的命令

vagrant up

为了直观一点,来个动图看一下吧: 在这里插入图片描述 开始拷贝文件有些慢,不是Gif结束了,等一会儿就继续了;

由于Gif大小限制,只展示到安装PSU补丁就停止,后续没有什么好看的了,就是 顺利建库成功 啦! 在这里插入图片描述 这里就已经安装成功了。现在我们连进去查看数据库试试: 在这里插入图片描述 可以看到数据库创建成功 🎉,PSU补丁也已经安装成功 ✌🏻: 在这里插入图片描述 就这,你以为本文就结束了❓ 当然不是,还有干货分享 🔥 !!!

三、❄️ Vagrant box打包分享 ❄️

Vagrant支持将box打包并且上传到官方站点进行分享,也可以用于备份,方便以后直接打开使用。

接下来,就看看如何打包Vagrant box吧 😄!

1、打包前准备

删除多余的安装介质以减少box大小,取消/mnt镜像挂载

rm -rf /soft
umount /mnt

关闭Oracle数据库和监听

lsnrctl stop
sas
shudown immediate

关闭Linux主机

vagrant halt
vagrant status

在这里插入图片描述

2、打包box

通过vagrant package命令打包box: 在这里插入图片描述

sudo vagrant package

在这里插入图片描述 注意:如果直接打包box,打包完后的box高达 18G,明显太大了。

使用脚本清理,缩小box大下:

##创建脚本文件
vi /mnt/purge.sh
chmod +x /mnt/purge.sh
##将以下内容写入脚本文件
#!/bin/sh
# Zero free space to aid VM compression
printf "STEP: Zero free space to aid VM compression\n"
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY

# Remove Linux headers
printf "STEP: Remove Linux headers\n"
rm -rf /usr/src/linux-headers*
 
# Remove Unused locales (edit for your needs, this keeps only en* and pt_BR)
printf "STEP: Remove Unused locales (edit for your needs, this keeps only en* and pt_BR) find\n" 
find /usr/share/locale/{af,am,ar,as,ast,az,bal,be,bg,bn,bn_IN,br,bs,byn,ca,cr,cs,csb,cy,da,de,de_AT,dz,el,en_AU,en_CA,eo,es,et,et_EE,eu,fa,fi,fo,fr,fur,ga,gez,gl,gu,haw,he,hi,hr,hu,hy,id,is,it,ja,ka,kk,km,kn,ko,kok,ku,ky,lg,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,nb,ne,nl,nn,no,nso,oc,or,pa,pl,ps,qu,ro,ru,rw,si,sk,sl,so,sq,sr,sr*latin,sv,sw,ta,te,th,ti,tig,tk,tl,tr,tt,ur,urd,ve,vi,wa,wal,wo,xh,zh,zh_HK,zh_CN,zh_TW,zu} -type d -delete
 
# Remove bash history
printf "STEP: Remove bash history\n"
unset HISTFILE
rm -f /root/.bash_history

# Cleanup log files
printf "STEP: Cleanup log files\n"
find /var/log -type f | while read f; do echo -ne '' > $f; done;
 
# Whiteout root
printf "STEP: Whiteout root\n"
count=`df --sync -kP / | tail -n1  | awk -F ' ' '{print $4}'`;
count=$((count -= 1))
dd if=/dev/zero of=/tmp/whitespace bs=1024 count=$count;
rm /tmp/whitespace;
 
# Whiteout /boot
printf "STEP: Whiteout /boot\n"
count=`df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}'`;
count=$((count -= 1))
dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count;
rm /boot/whitespace;
 
# Whiteout swap 
printf "STEP: Whiteout swap\n"
swappart=`cat /proc/swaps | tail -n1 | awk -F ' ' '{print $1}'`
swapoff $swappart;
dd if=/dev/zero of=$swappart;
mkswap $swappart;
swapon $swappart;

清理完成后,重新打包 box。查看大小:

sudo vagrant package --output=centos79-oracle11g

在这里插入图片描述 刺不刺激,从 18G 变成 3.9G 了,爽呀,美滋滋 😄~

为了确保可以使用,我们重新添加测试一下:

mkdir -p /Volumes/DBA/vagrant/oracle11g
vagrant box add /Volumes/DBA/vagrant/centos79/centos79-oracle11g --name oracle11g
cd /Volumes/DBA/vagrant/oracle11g
vagrant init oracle11g
vagrant up --provider=virtualbox
vagrant ssh
su - oracle

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 经过测试,数据库可以使用,没毛病!!!

3、上传分享box

需要注册Vagrant账号,我这里已经注册好勒,开始上传!具体上传流程很简单,就不演示了哈 O(∩_∩)O~~ 在这里插入图片描述 害,上传也太慢了,先去玩一会儿,等传完我再来 👋🏻 ~

。。。。。。好长时间过去了。。。。。。。 在这里插入图片描述 终于上传成功了!!!大家可以去下载使用了~☀️ 在这里插入图片描述

下载方式:luciferliu/oracle11g

之后应该会出更多版本的数据库 box,包括rac数据库,dataguard,dns服务器,openfiler服务器以及MySQL等等。

⭐️ 慢慢玩,不着急~ ⭐️

写在最后

虽然这种方式不适用于生产环境的安装使用 😒,但是,对于个人测试练习使用,可以说是极其方便了 😄。如果不会使用的朋友,可以直接下载我分享的box,直接 vagrant up 就可以使用啦 🎉~

❤️ 最后,祝大家玩得开心,有问题或者技术交流可以关注我,私聊我~ ❤️

在这里插入图片描述


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

今天的文章❤️ Vagrant 一键安装任意系统 ,甚至 Oracle 数据库 !!!☀️ 建议收藏 ᕕ( ᐛ )ᕗ分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/15293.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注