oracle vagrant 的简单使用和配置

Oracle 管理 同时被 3 个专栏收录
32 篇文章 0 订阅
8 篇文章 0 订阅
3 篇文章 0 订阅

对于dba的日常学习,需要安装虚拟机,安装oracle ,传统的virtualbox虚拟机环境,我们需要下载iso文件,然后在虚拟机下安装系统,进行配置,然后下载oracle 安装介质,然后安装oracle等等。。

使用 vagrant 将大大减少这些工作量。不单单适用于dba。做Web开发(java/php/python/ruby...)少不了要在本地搭建好开发环境,虽然说目前各种脚本/语言都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的兼容性(如配置文件、编译的模块)并不是那么好,麻烦的问题是实际部署的环境通常是Linux,常常还要面临着开发和部署环境不一致,上线前还要大量的调试。而如果让每个开发人员都自己去搭建本地环境,安装虚拟机、下载ISO镜像、选择规格安装创建vm、安装OS、配置,会耗费非常多的时间,如果是团队开发应该要尽量保持每个人的运行环境一致。此时vagrant正式你所需要的。不适用正式环境部署。

什么是Vagrant

Vagrant是一款用于构建及配置虚拟开发环境的软件,基于Ruby,主要以命令行的方式运行。 主要使用Oracle的开源VirtualBox虚拟化系统,与Chef,Salt,Puppet等环境配置管理软件搭配使用, 可以实行快速虚拟开发环境的构建。

名词概念解释:

  • Provider:供应商,在这里指Vagrant调用的虚拟化工具。Vagrant本身并没有能力创建虚拟机,它是调用一些虚拟化工具来创建,如VirtualBox、VMWare、Xen、Docker,甚至AWS,这些虚拟化工具只要安装好了,vagrant会自动封装在底层通过统一的命令调用。也就是说使用vagrant时你电脑上还需要安装对应的Provider,默认是免费开源的virtualbox。
  • Box:可被Vagrant直接使用的虚拟机镜像文件,大小根据内容的不同从200M-2G不等。针对不同的Provider,Box文件的格式是不一样的,从 vagrantcloud.com 你可以找到社区维护的box。
  • Vagrantfile:Vagrant根据Vagrantfile中的配置来创建虚拟机,是Vagrant的核心。在Vagrantfile文件中你需要指明使用哪个Box(可以下载好的或自己制作,或指定在线的URL地址),虚拟机使用的内存大小和CPU,需要预安装哪些软件,虚拟机的网络配置,与host的共享目录等。
  • Provisioner:是Vagrant的插件的一种。大部分现成的box并不是你正好想要的,通过使用你熟悉的provisioner,比如Puppet,可以在你使用vagrant up启动虚拟机时自动的安装软件、修改配置等初始化操作。当然你也可以在最先启动虚拟机后,使用vagrant ssh进去然后手动安装软件,但毕竟不是所有人都是系统管理员,写好Vagrantfile后无需人工干预马上就可以使用vm。目前支持并实现的provisioning有Puppet、Salt、Ansible、Chef这些知名的自动化运维工具,当然需要一定的使用经验;也可以使用shell provisioner,故名思议这个插件就是通过执行shell命令完成统一的作用。
  • Guest Additions:这个是常在下载 base box 介绍里有的,一般用来实现host到vm的端口转发、目录共享,在开发环境上都建议装上以便测试。

下面简单说明步骤:

1) 前期准备工作。下载如下文件:

VirtualBox (https://www.virtualbox.org/)

vagrant (https://www.vagrantup.com/downloads.html)

vagrant box (http://www.vagrantbox.es/这是一个VirtualBox提供的box,当然你可以使用开发小组配置好打包的box)

分别安装好VirtualBox 和 vagrant  软件。这两个软件安装没有先后依赖顺序。win环境下,安装完会要求重启系统。

2) cmd 下cd 到自己新建的目录下

2.1)下载box 文件。并且添加box 

E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant box add --name ol76 https://yum.oracle.com/boxes/oraclelinux/ol76/ol76.box   >>>>>第1步 添加box的,名称位ol76 
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'ol76' (v0) for provider:
    box: Downloading: https://yum.oracle.com/boxes/oraclelinux/ol76/ol76.box
==> box: Box download is resuming from prior download progress
    box: Progress: 100% (Rate: 545k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'ol76' (v0) for 'virtualbox'!
E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant init ol76   >>>>>> 第2步 初始化ol76  当前目录生成Vagrantfile配置文件
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant up  >>>>>>第3步 启动虚拟机,相当于开机
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ol76'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: oracle1_default_1550394567386_90004
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

  https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

  VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

  config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 6.0.4
    default: VirtualBox Version: 5.2
==> default: Configuring proxy environment variables...
==> default: Configuring proxy for Yum...
==> default: Mounting shared folders...
    default: /vagrant => E:/vagranttest/vagrant-boxes/oracle19c/oracle1

E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant ssh >>>>>第4步  ssh  登录虚拟机
Last login: Mon Feb 11 19:32:33 2019 from 10.0.2.2

Welcome to Oracle Linux Server release 7.6 (GNU/Linux 4.14.35-1844.1.3.el7uek.x86_64)

The Oracle Linux End-User License Agreement can be viewed here:

    * /usr/share/eula/eula.en_US

For additional packages, updates, documentation and community help, see:

    * http://yum.oracle.com/
[vagrant@localhost ~]$ top >>>>>验证结果

top - 09:11:03 up 1 min,  1 user,  load average: 0.07, 0.04, 0.01
Tasks: 108 total,   1 running,  41 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.8 us,  5.6 sy,  0.0 ni, 91.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1768224 total,  1562648 free,    42396 used,   163180 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used.  1553392 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   46044   8104   5788 S   0.0  0.5   0:00.77 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd
    3 root      20   0       0      0      0 I   0.0  0.0   0:00.04 kworker/0:0
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H
    5 root      20   0       0      0      0 I   0.0  0.0   0:00.00 kworker/u4:0
    6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 mm_percpu_wq
    7 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd/0
    8 root      20   0       0      0      0 I   0.0  0.0   0:00.06 rcu_sched
    9 root      20   0       0      0      0 I   0.0  0.0   0:00.00 rcu_bh
   10 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 migration/0
   11 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 watchdog/0
   12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/0
   13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/1
   14 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 watchdog/1
   15 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 migration/1
   16 root      20   0       0      0      0 S   0.0  0.0   0:00.01 ksoftirqd/1
   17 root      20   0       0      0      0 I   0.0  0.0   0:00.01 kworker/1:0
   18 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/1:0H
   20 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs
   21 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 netns
   22 root      20   0       0      0      0 I   0.0  0.0   0:00.02 kworker/0:1
   23 root      20   0       0      0      0 S   0.0  0.0   0:00.00 khungtaskd
   24 root      20   0       0      0      0 S   0.0  0.0   0:00.00 oom_reaper
   25 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 writeback
   26 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kcompactd0
   27 root      25   5       0      0      0 S   0.0  0.0   0:00.00 ksmd
   28 root      39  19       0      0      0 S   0.0  0.0   0:00.00 khugepaged
   29 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 crypto
   30 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kintegrityd
   31 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kblockd
   32 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 md
   33 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 edac-poller
   34 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 devfreq_wq
   35 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 watchdogd
   37 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kauditd

[vagrant@localhost ~]$

[vagrant@localhost ~]$ df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     854M     0  854M   0% /dev
tmpfs                        864M     0  864M   0% /dev/shm
tmpfs                        864M  8.5M  855M   1% /run
tmpfs                        864M     0  864M   0% /sys/fs/cgroup
/dev/mapper/vg_main-lv_root   32G  1.3G   31G   4% /
/dev/sda1                    497M   99M  399M  20% /boot
vagrant                      430G  392G   38G  92% /vagrant
tmpfs                        173M     0  173M   0% /run/user/1000
 

整个过程从开始到结束没有超过5分钟(主要时间在下载box文件)。简简单单4步搞定。极大的提高了生成虚拟机的效率和速度。

一些关于vagrant 的命令小结:

E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant --version  --》查看版本
Vagrant 2.2.3

E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant box list     --》列出所有的box
ol7-latest (virtualbox, 0)
ol76       (virtualbox, 0)

E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant halt    ---》关闭VM
==> default: Attempting graceful shutdown of VM...

E:\vagranttest\vagrant-boxes\oracle19c\oracle1>vagrant -h  --》更多命令自己去看!
Usage: vagrant [options] <command> [<args>]

    -v, --version                    Print the version and exit.
    -h, --help                       Print this help.

Common commands:
     box             manages boxes: installation, removal, etc.
     cloud           manages everything related to Vagrant Cloud
     destroy         stops and deletes all traces of the vagrant machine
     global-status   outputs status Vagrant environments for this user
     halt            stops the vagrant machine
     help            shows the help for a subcommand
     init            initializes a new Vagrant environment by creating a Vagrantfile
     login
     package         packages a running vagrant environment into a box
     plugin          manages plugins: install, uninstall, update, etc.
     port            displays information about guest port mappings
     powershell      connects to machine via powershell remoting
     provision       provisions the vagrant machine
     push            deploys code in this environment to a configured destination
     rdp             connects to machine via RDP
     reload          restarts vagrant machine, loads new Vagrantfile configuration
     resume          resume a suspended vagrant machine
     snapshot        manages snapshots: saving, restoring, etc.
     ssh             connects to machine via SSH
     ssh-config      outputs OpenSSH valid configuration to connect to the machine
     status          outputs status of the vagrant machine
     suspend         suspends the machine
     up              starts and provisions the vagrant environment
     upload          upload to machine via communicator
     validate        validates the Vagrantfile
     version         prints current and latest Vagrant version
     winrm           executes commands on a machine via WinRM
     winrm-config    outputs WinRM configuration to connect to the machine

For help on any individual command run `vagrant COMMAND -h`

vagrant up 可能碰到的问题: win7 下 powershell 版本过低,升级powershell 版本

下面是我的公众号:定期会更新一些oracle及python相关的学习心得及笔记。欢迎关注:

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值