Sunday, January 5, 2014

Setting up a vagrant basebox for Oracle Linux by using veewee

Introduction

Note: Due to my professional life I use Oracle Linux a lot (Which is a distro that tracks Red Hat so it is very similar to RH and CentOS) therefore I will use Oracle Linux for the VM's in this blogpost as well. Don't worry about a possible price tag; Oracle Linux is free and you can get free updates from their Oracle public yum servers. I am no Oracle employee, so if you want their vision: https://linux.oracle.com.

Another reason why I use Oracle linux is because vagrant boxes were not easy to find for this distro. At least not for usage with libvirt. This makes it more interesting topic for a blog post.

For home usage I really like mint. So the building of the basebox is done on my home PC which runs mint (which is Ubuntu based and thus a Debian derivative).

Overview

In order to build a vagrant basebox we will need to go through the following steps

  • Install Ruby version manager (rvm)
  • Install bundler gem
  • Install veewee as a gemset in rvm
  • Installing kvm support for your system.
  • Installing ruby-libvirt gem
  • Create a storage pool
  • Create a basebox
  • Install a compatible Vagrant with libvirt
  • Create a vagrant config and test.

The remaining of this blogpost will have sections corresponding with these steps. The reader can skip steps that are of no interest to him/her.

Installing rvm

RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems. For this blogpost we use its feature to manage sets of gems. I only use it to avoid corrupting your default ruby environment but it is not perse necessary for building a vagrant basebox.

Install the pre-requisites

sudo apt-get install libxslt1-dev libxml2-dev zlib1g-dev curl

Install rvm

\curl -sSL https://get.rvm.io | bash

Ruby works by sourcing a script. By sourcing this script rvm gets 'activated'.

source /home/$USER/.rvm/scripts/rvm

Once rvm is ready for setup we will install ruby 1.9.2 in it since this is the version we will use to run veewee

rvm install 1.9.2

Additional remark regarding rvm: rvm will be a function but in order for this to be initialized correclty you need to use a loginshell (if this is chinese to you and you wish to translate do a 'man bash' and start reading the 'INVOCATION' section). Since I was using guake (a dropdown terminal) this was not done automatically when opening a new terminal. Luckily there is a checkbox 'Run command as a login shell' in the guake preferences, after selecting this box rvm was loaded automaticlly in every new guake shell.

Install veewee as a gemset

Now that rvm is installed and a ruby 1.9.2 is available we can install veewee. We will get the latest version by cloning the github repository of the original creator.

$USER@$HOST ~ $ cd
$USER@$HOST ~ $ git clone https://github.com/jedi4ever/veewee.git
Cloning into 'veewee'...
remote: Reusing existing pack: 13273, done.
remote: Total 13273 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (13273/13273), 4.13 MiB | 1.86 MiB/s, done.
Resolving deltas: 100% (8370/8370), done.
Checking connectivity... done
$USER@$HOST ~ $ cd veewee/
You are using '.rvmrc', it requires trusting, it is slower and it is not compatible with other ruby managers,
you can switch to '.ruby-version' using 'rvm rvmrc to [.]ruby-version'
or ignore this warning with 'rvm rvmrc warning ignore /home/$USER/veewee/.rvmrc',
'.rvmrc' will continue to be the default project file in RVM 1 and RVM 2,
to ignore the warning for all files run 'rvm rvmrc warning ignore all.rvmrcs'.

********************************************************************************************************************
* NOTICE                                                                                                           *
********************************************************************************************************************
* RVM has encountered a new or modified .rvmrc file in the current directory, this is a shell script and           *
* therefore may contain any shell commands.                                                                        *
*                                                                                                                  *
* Examine the contents of this file carefully to be sure the contents are safe before trusting it!                 *
* Do you wish to trust '/home/$USER/veewee/.rvmrc'?                                                                *
* Choose v[iew] below to view the contents                                                                         *
********************************************************************************************************************
y[es], n[o], v[iew], c[ancel]> v
********************************************************************************************************************
* The contents of the .rvmrc file will now be displayed.                                                           *
* After reading the file, you will be prompted again for 'yes or no' to set the trust level for this particular    *
* version of the file.                                                                                             *
*                                                                                                                  *
* Note: You will be re-prompted each time the .rvmrc file's contents change                                        *
* changes, and may change the trust setting manually at any time.                                                  *
********************************************************************************************************************
(( press a key to review the .rvmrc file ))
rvm use ruby-1.9.2@veewee --create
#rvm use ruby-1.8.7@veewee --create

alias veewee="bundle exec veewee"
alias irb="bundle exec irb"
#alias vagrant="bundle exec vagrant"
********************************************************************************************************************
* Viewing of /home/$USER/veewee/.rvmrc complete.                                                                   *
********************************************************************************************************************
* Trusting an .rvmrc file means that whenever you cd into this directory, RVM will run this .rvmrc shell script.   *
* Note that if the contents of the file change, you will be re-prompted to review the file and adjust its trust    *
* settings. You may also change the trust settings manually at any time with the 'rvm rvmrc' command.              *
********************************************************************************************************************
y[es], n[o], v[iew], c[ancel]> y
gemset veewee is not existing, creating.
ruby-1.9.2-p320 - #gemset created /home/$USER/.rvm/gems/ruby-1.9.2-p320@veewee
ruby-1.9.2-p320 - #generating veewee wrappers.
Using /home/$USER/.rvm/gems/ruby-1.9.2-p320 with gemset veewee

A lot has happened in the previous code block.

  • We descended into the home folder of the current user (you can install veewee somewhere else if you want).
  • There we cloned the github repository.
  • Next we descended into the cloned directory. This activated rvm since it contained a .rvmrc file. Which is a project configuration file for rvm. More info on this can be found here.

By looking at the .rvmrc file we see that this script creates an environment ruby-1.9.2@veewee. This means a named gemset called veewee for ruby-1.9.2. It also sets up an alias which allows the linux users to just call veewee.

Install bundler gem

For this make sure that rvm is in the correct environment. You can check the current environment with:

$USER@$HOST ~ $ rvm current
ruby-1.9.2-p320

To change to the veewee environment you can execute:

$USER@$HOST ~ $ rvm use ruby-1.9.2-p320@veewee
Using /home/$USER/.rvm/gems/ruby-1.9.2-p320 with gemset veewee

A safety check doesn't hurt

$USER@$HOST ~ $ rvm current
ruby-1.9.2-p320@veewee

Now we can install the gem

gem install bundler

Finally install veewee

We have got the veewee source code in $HOME/veewee thanks to the clone of the github repository. We will descend into this directory and install veewee as a gem by executing bundle install. (As in previous section it is important that the ruby-1.9.2-p320@veewee environment is active).

$USER@$HOST ~/veewee $ bundle install
Fetching https://github.com/hh/em-winrm.git
remote: Counting objects: 144, done.
remote: Compressing objects: 100% (76/76), done.
remote: Total 144 (delta 67), reused 144 (delta 67)
Receiving objects: 100% (144/144), 24.26 KiB | 0 bytes/s, done.
Resolving deltas: 100% (67/67), done.
Fetching gem metadata from http://rubygems.org/........
Fetching gem metadata from http://rubygems.org/..
Resolving dependencies...
Installing rake (10.1.1) 
Installing libxml-ruby (2.7.0) 
Installing CFPropertyList (2.0.17) 
Installing Platform (0.4.0) 
Installing builder (3.2.2) 
Installing gyoku (1.1.0) 
Installing mini_portile (0.5.2) 
Installing nokogiri (1.6.1) 
Installing akami (1.2.0) 
Installing ansi (1.3.0) 
Using bundler (1.3.5) 
Installing ffi (1.9.3) 
Installing childprocess (0.3.9) 
Installing diff-lcs (1.2.5) 
Installing eventmachine (1.0.0.beta.3) 
Installing mixlib-log (1.6.0) 
Installing uuidtools (2.1.4) 
Installing gssapi (1.0.3) 
Installing httpclient (2.3.4.1) 
Installing little-plugger (1.1.3) 
Installing multi_json (1.8.2) 
Installing logging (1.8.1) 
Installing rubyntlm (0.1.1) 
Installing rack (1.5.2) 
Installing httpi (0.9.7) 
Installing nori (1.1.5) 
Installing wasabi (1.0.0) 
Installing savon (0.9.5) 
Installing winrm (1.1.3) 
Using em-winrm (0.5.4.rc.1) from https://github.com/hh/em-winrm.git (at 3174560) 
Installing excon (0.31.0) 
Installing fission (0.4.0) 
Installing formatador (0.2.4) 
Installing mime-types (1.25.1) 
Installing net-ssh (2.7.0) 
Installing net-scp (1.1.2) 
Installing ruby-hmac (0.4.0) 
Installing fog (1.19.0) 
Installing posix-spawn (0.3.8) 
Installing grit (2.5.0) 
Installing highline (1.6.20) 
Installing i18n (0.6.9) 
Installing json (1.8.1) 
Installing log4r (1.1.10) 
Installing open4 (1.3.0) 
Installing os (0.9.6) 
Installing popen4 (0.1.2) 
Installing progressbar (0.21.0) 
Installing rspec-core (2.14.7) 
Installing rspec-expectations (2.14.4) 
Installing rspec-mocks (2.14.4) 
Installing rspec (2.14.1) 
Installing ruby-vnc (1.0.1) 
Installing thor (0.18.1) 
Using veewee (0.3.12) from source at /home/$USER/veewee 
Your bundle is complete!
Gems in the group kvm were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

Installing kvm support

This is based on the serverguide from ubuntu: https://help.ubuntu.com/lts/serverguide/libvirt.html

Install the packages

sudo apt-get install kvm libvirt-bin libvirt-dev cpu-checker

Add the current user to the libvirtd group

With current user I mean the user which will be administrating the VM's

sudo adduser $USER libvirtd

To activate this change it is best to logout and login again. In order to avoid strang problems in the future, it is best to do the logout now :-).

Check whether kvm is an option for your processor

USRE@HOST ~ $ kvm-ok 
INFO: /dev/kvm exists
KVM acceleration can be used

Installing the ruby-libvirt gem

As before make sure we are in the correct rvm environment

$USER@$HOST ~ $ rvm current
ruby-1.9.2-p320@veewee

Install the gem

$USER@$HOST ~/veewee $ gem install ruby-libvirt
Building native extensions.  This could take a while...
Successfully installed ruby-libvirt-0.5.1
Installing ri documentation for ruby-libvirt-0.5.1
Done installing documentation for ruby-libvirt after 0 seconds
1 gem installed

Make sure the new gem is in the context of your bundle

bundle install --without restrictions

Logout and login before building kvms (otherwise you might get a permission denied like:)

 
There was a problem opening a connection to libvirt: Error making a connection to libvirt URI qemu:///system:
Call to virConnectOpen failed: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied

This error is a permission error. Possibly because the user executing the command is not in the libvirtd group.

Create a libvirt storage pool

The following ruby script can be used to create a storage pool. A storage pool is necessary as there the disks will be placed. For libvirt one of the possiblities is to set a directory as a repository. Since this is an easy solution we go for these approach. The following script is borrowed from http://libvirt.org/ruby/examples/storage.rb. It is just adapted in order to only create the storage pool and no volumes. Make sure you change the path (it has the dummy value USER in it).

# http://libvirt.org/ruby/examples/storage.rb
# this program demonstrates the use of the libvirt storage APIs.  In particular
# it demonstrates directory pool creation, volume creation, and teardown.
# libvirt supports many other kinds of storage pools, including iSCSI, NFS,
# etc.  See http://libvirt.org/formatstorage.html for more details

require 'libvirt'

# a directory storage pool.  
storage_pool_xml = <
  libvirt-pool
  
    /home/$USER/libvirt-pool
  

EOF

# open up the connection to libvirt
conn = Libvirt::open('qemu:///system')

# print out how many storage pools are currently active
puts "Number of storage pools: #{conn.num_of_storage_pools}"

# create our new storage pool
pool = conn.define_storage_pool_xml(storage_pool_xml)

# build the storage pool.  The operation that this performs is pool-specific;
# in the case of a directory pool, it does the equivalent of mkdir to create
# the directory
pool.build

# start up the pool
pool.create

# print out how many active storage pools are now there; this should be one
# more than before
puts "Number of storage pools: #{conn.num_of_storage_pools}"

# print out some information about the pool.  Note that allocation can be
# much less than capacity; see the discussion for the storage volume XML for
# more details
puts "Storage Pool:"
puts " Name: #{pool.name}"
puts " UUID: #{pool.uuid}"
puts " Autostart?: #{pool.autostart?}"


conn.close

Run this in your rvm environment (ruby-1.9.2-p320@veewee) and with ruby

 
$USER@$HOST ~/libvirt $ ruby storage.rb 
Number of storage pools: 0
Number of storage pools: 1
Storage Pool:
 Name: libvirt-pool
 UUID: fdaada6f-7d0d-484f-9434-fc43e25bd43e
 Autostart?: false

Create a basebox using veewee

Now we are ready to create our basebox. We will create a basebox for Oracle Linux 6.5. Veewee make use of template directories describing VMs out of which it builds the baseboxes. In the version that I cloned from github there was no template for Oracle Linux 6.5 yet. Since the differences between Oracle Linux 6.4 and 6.5 do not impose big changes on the installation procedure we can create a new template directory based on the template of Oracle Linux 6.

cd ~/veewee
cp -R templates/OracleLinux-6.4-x86_64-DVD templates/OracleLinux-6.4-x86_65-DVD

In the definition.rb the VM is defined. Here it explains how the VM will be build. We need to use a different iso but other than that we will keep the same definition. Change the iso details:

$USER@$HOST ~/veewee $ diff templates/OracleLinux-6.5-x86_64-DVD/definition.rb templates/OracleLinux-6.4-x86_64-DVD/definition.rb 
8,10c8,10
<   :iso_file => "OracleLinux-R6-U5-Server-x86_64-dvd.iso",
<   :iso_src => "http://mirrors.dotsrc.org/oracle-linux/OL6/U5/x86_64/OracleLinux-R6-U5-Server-x86_64-dvd.iso",
<   :iso_md5 => "774fb999e4ed43341dcdf5ebc0d48f42",
---
>   :iso_file => "OracleLinux-R6-U4-Server-x86_64-dvd.iso",
>   :iso_src => "http://mirrors.dotsrc.org/oracle-linux/OL6/U4/x86_64/OracleLinux-R6-U4-Server-x86_64-dvd.iso",
>   :iso_md5 => "744fc1663519b4d54da1345669fcee52",

Next we can create a definition for a kvm VM out of the template, we call it oel65_kvm. A definition is like a working copy of a template. It alows you to create definitions for servers with different software installed on them. For this first example we keep the definition the same as the template:

$USER@$HOST ~/veewee $ veewee kvm define 'oel65_kvm' 'OracleLinux-6.5-x86_64-DVD' --workdir=/home/$USER/veewee
The basebox 'oel65_kvm' has been successfully created from the template 'OracleLinux-6.5-x86_64-DVD'
You can now edit the definition files stored in /home/$USER/veewee/definitions/oel65_kvm or build the box with:
veewee kvm build 'oel65_kvm' --workdir=/home/$USER/veewee

Since we won't change this definition we will directly build the box:

$USER@$HOST ~/veewee $ veewee kvm build 'oel65_kvm' --workdir=/home/$USER/veewee
Building Box oel65_kvm with Definition oel65_kvm:
- debug : false
- cwd : /home/$USER/veewee
- force : false
- nogui : false
- auto : false
- checksum : false
- postinstall_include : []
- postinstall_exclude : []
- use_emulation : false
- network_name : default

The isofile OracleLinux-R6-U5-Server-x86_64-dvd.iso already exists.
Waiting 10 seconds for the machine to boot
Finding unused TCP port in range: 7122 - 7199
Selected TCP port 7122
Sending keystrokes to VNC port :0 - TCP port: 5900
Starting a webserver :7122
Typing:[1]:  text ks=http://192.168.75.18:7122/ks.cfg
Done typing.

Serving file /home/$USER/veewee/definitions/oel65_kvm/ks.cfg
Shutting down for /home/$USER/veewee/definitions/oel65_kvm/ks.cfg
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.........................................................................
Transferring /tmp/.veewee_version20131228-7059-18zzcu6 to .veewee_version 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /tmp/.veewee_params20131228-7059-e1ql2d to .veewee_params 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/proxy.sh to proxy.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "proxy.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/base.sh to base.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "base.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/chef.sh to chef.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "chef.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/puppet.sh to puppet.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "puppet.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/vagrant.sh to vagrant.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "vagrant.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/virtualbox.sh to virtualbox.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "virtualbox.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/cleanup.sh to cleanup.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "cleanup.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Transferring /home/$USER/veewee/definitions/oel65_kvm/zerodisk.sh to zerodisk.sh 
..
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: chmod +x "zerodisk.sh"
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './proxy.sh'
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './base.sh'
--2013-12-28 10:56:33--  https://public-yum.oracle.com/public-yum-ol6.repo
Resolving public-yum.oracle.com... 2.22.55.98, 2.22.55.123
Connecting to public-yum.oracle.com|2.22.55.98|:443... connected.
ERROR: certificate common name “a248.e.akamai.net” doesn’t match requested host name “public-yum.oracle.com”.
To connect to public-yum.oracle.com insecurely, use ‘--no-check-certificate’.
Loaded plugins: security
public_ol6_UEKR3_latest                                  | 1.2 kB     00:00     
public_ol6_UEKR3_latest/primary                          | 2.3 MB     00:00     
public_ol6_UEKR3_latest                                                   77/77
public_ol6_latest                                        | 1.4 kB     00:00     
public_ol6_latest/primary                                |  35 MB     00:16     
public_ol6_latest                                                   24509/24509
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package ca-certificates.noarch 0:2013.1.94-65.0.el6 will be updated
---> Package ca-certificates.noarch 0:2013.1.95-65.1.el6_5 will be an update
---> Package dmidecode.x86_64 1:2.11-2.el6 will be updated
---> Package dmidecode.x86_64 1:2.11-2.el6_1 will be an update
---> Package dracut.noarch 0:004-335.0.1.el6 will be updated
---> Package dracut.noarch 0:004-336.0.1.el6_5.2 will be an update
---> Package dracut-kernel.noarch 0:004-335.0.1.el6 will be updated
---> Package dracut-kernel.noarch 0:004-336.0.1.el6_5.2 will be an update
---> Package kernel.x86_64 0:2.6.32-431.1.2.el6 will be installed
---> Package kernel-firmware.noarch 0:2.6.32-431.el6 will be updated
---> Package kernel-firmware.noarch 0:2.6.32-431.1.2.el6 will be an update
---> Package kernel-uek.x86_64 0:3.8.13-16.3.1.el6uek will be installed
---> Package kernel-uek-firmware.noarch 0:3.8.13-16.3.1.el6uek will be installed
---> Package libjpeg-turbo.x86_64 0:1.2.1-1.el6 will be updated
---> Package libjpeg-turbo.x86_64 0:1.2.1-3.el6_5 will be an update
---> Package nspr.x86_64 0:4.10.0-1.el6 will be updated
---> Package nspr.x86_64 0:4.10.2-1.el6_5 will be an update
---> Package nss.x86_64 0:3.15.1-15.0.1.el6 will be updated
---> Package nss.x86_64 0:3.15.3-3.0.1.el6_5 will be an update
---> Package nss-sysinit.x86_64 0:3.15.1-15.0.1.el6 will be updated
---> Package nss-sysinit.x86_64 0:3.15.3-3.0.1.el6_5 will be an update
---> Package nss-tools.x86_64 0:3.15.1-15.0.1.el6 will be updated
---> Package nss-tools.x86_64 0:3.15.3-3.0.1.el6_5 will be an update
---> Package nss-util.x86_64 0:3.15.1-3.el6 will be updated
---> Package nss-util.x86_64 0:3.15.3-1.el6_5 will be an update
---> Package openssl.x86_64 0:1.0.1e-15.el6 will be updated
---> Package openssl.x86_64 0:1.0.1e-16.el6_5.1 will be an update
---> Package pixman.x86_64 0:0.26.2-5.el6_4 will be updated
---> Package pixman.x86_64 0:0.26.2-5.1.el6_5 will be an update
---> Package system-config-network-tui.noarch 0:1.6.0.el6.2-1.0.3.el6 will be updated
---> Package system-config-network-tui.noarch 0:1.6.0.el6.3-1.0.1.el6 will be an update
---> Package systemtap-runtime.x86_64 0:2.3-3.0.1.el6 will be updated
---> Package systemtap-runtime.x86_64 0:2.3-4.0.1.el6_5 will be an update
---> Package tzdata.noarch 0:2013g-1.el6 will be updated
---> Package tzdata.noarch 0:2013i-1.el6 will be an update
---> Package yum.noarch 0:3.2.29-40.0.1.el6 will be updated
---> Package yum.noarch 0:3.2.29-43.0.1.el6_5 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch   Version               Repository               Size
================================================================================
Installing:
 kernel              x86_64 2.6.32-431.1.2.el6    public_ol6_latest        28 M
 kernel-uek          x86_64 3.8.13-16.3.1.el6uek  public_ol6_UEKR3_latest  41 M
 kernel-uek-firmware noarch 3.8.13-16.3.1.el6uek  public_ol6_UEKR3_latest 1.6 M
Updating:
 ca-certificates     noarch 2013.1.95-65.1.el6_5  public_ol6_latest       1.1 M
 dmidecode           x86_64 1:2.11-2.el6_1        public_ol6_latest        71 k
 dracut              noarch 004-336.0.1.el6_5.2   public_ol6_latest       122 k
 dracut-kernel       noarch 004-336.0.1.el6_5.2   public_ol6_latest        24 k
 kernel-firmware     noarch 2.6.32-431.1.2.el6    public_ol6_latest        13 M
 libjpeg-turbo       x86_64 1.2.1-3.el6_5         public_ol6_latest       174 k
 nspr                x86_64 4.10.2-1.el6_5        public_ol6_latest       112 k
 nss                 x86_64 3.15.3-3.0.1.el6_5    public_ol6_latest       821 k
 nss-sysinit         x86_64 3.15.3-3.0.1.el6_5    public_ol6_latest        39 k
 nss-tools           x86_64 3.15.3-3.0.1.el6_5    public_ol6_latest       358 k
 nss-util            x86_64 3.15.3-1.el6_5        public_ol6_latest        64 k
 openssl             x86_64 1.0.1e-16.el6_5.1     public_ol6_latest       1.5 M
 pixman              x86_64 0.26.2-5.1.el6_5      public_ol6_latest       200 k
 system-config-network-tui
                     noarch 1.6.0.el6.3-1.0.1.el6 public_ol6_latest       818 k
 systemtap-runtime   x86_64 2.3-4.0.1.el6_5       public_ol6_latest       188 k
 tzdata              noarch 2013i-1.el6           public_ol6_latest       447 k
 yum                 noarch 3.2.29-43.0.1.el6_5   public_ol6_latest       996 k

Transaction Summary
================================================================================
Install       3 Package(s)
Upgrade      17 Package(s)

Total download size: 91 M
Downloading Packages:
(1/20): ca-certificates-2013.1.95-65.1.el6_5.noarch.rpm  | 1.1 MB     00:00     
(2/20): dmidecode-2.11-2.el6_1.x86_64.rpm                |  71 kB     00:00     
(3/20): dracut-004-336.0.1.el6_5.2.noarch.rpm            | 122 kB     00:00     
(4/20): dracut-kernel-004-336.0.1.el6_5.2.noarch.rpm     |  24 kB     00:00     
(5/20): kernel-2.6.32-431.1.2.el6.x86_64.rpm             |  28 MB     00:08     
(6/20): kernel-firmware-2.6.32-431.1.2.el6.noarch.rpm    |  13 MB     00:03     
(7/20): kernel-uek-3.8.13-16.3.1.el6uek.x86_64.rpm       |  41 MB     00:12     
(8/20): kernel-uek-firmware-3.8.13-16.3.1.el6uek.noarch. | 1.6 MB     00:00     
(9/20): libjpeg-turbo-1.2.1-3.el6_5.x86_64.rpm           | 174 kB     00:00     
(10/20): nspr-4.10.2-1.el6_5.x86_64.rpm                  | 112 kB     00:00     
(11/20): nss-3.15.3-3.0.1.el6_5.x86_64.rpm               | 821 kB     00:00     
(12/20): nss-sysinit-3.15.3-3.0.1.el6_5.x86_64.rpm       |  39 kB     00:00     
(13/20): nss-tools-3.15.3-3.0.1.el6_5.x86_64.rpm         | 358 kB     00:00     
(14/20): nss-util-3.15.3-1.el6_5.x86_64.rpm              |  64 kB     00:00     
(15/20): openssl-1.0.1e-16.el6_5.1.x86_64.rpm            | 1.5 MB     00:00     
(16/20): pixman-0.26.2-5.1.el6_5.x86_64.rpm              | 200 kB     00:00     
(17/20): system-config-network-tui-1.6.0.el6.3-1.0.1.el6 | 818 kB     00:00     
(18/20): systemtap-runtime-2.3-4.0.1.el6_5.x86_64.rpm    | 188 kB     00:00     
(19/20): tzdata-2013i-1.el6.noarch.rpm                   | 447 kB     00:00     
(20/20): yum-3.2.29-43.0.1.el6_5.noarch.rpm              | 996 kB     00:00     
--------------------------------------------------------------------------------
Total                                           3.2 MB/s |  91 MB     00:28     
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Retrieving key from http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
Importing GPG key 0xEC551F03:
 Userid: "Oracle OSS group (Open Source Software group) "
 From  : http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : nspr-4.10.2-1.el6_5.x86_64                                  1/37 
  Updating   : nss-util-3.15.3-1.el6_5.x86_64                              2/37 
  Updating   : nss-3.15.3-3.0.1.el6_5.x86_64                               3/37 
  Updating   : nss-sysinit-3.15.3-3.0.1.el6_5.x86_64                       4/37 
  Installing : kernel-uek-firmware-3.8.13-16.3.1.el6uek.noarch             5/37 
  Updating   : dracut-004-336.0.1.el6_5.2.noarch                           6/37 
  Updating   : dracut-kernel-004-336.0.1.el6_5.2.noarch                    7/37 
  Updating   : ca-certificates-2013.1.95-65.1.el6_5.noarch                 8/37 
  Updating   : kernel-firmware-2.6.32-431.1.2.el6.noarch                   9/37 
  Installing : kernel-2.6.32-431.1.2.el6.x86_64                           10/37 
  Updating   : systemtap-runtime-2.3-4.0.1.el6_5.x86_64                   11/37 
  Updating   : openssl-1.0.1e-16.el6_5.1.x86_64                           12/37 
  Installing : kernel-uek-3.8.13-16.3.1.el6uek.x86_64                     13/37 
  Updating   : nss-tools-3.15.3-3.0.1.el6_5.x86_64                        14/37 
  Updating   : yum-3.2.29-43.0.1.el6_5.noarch                             15/37 
  Updating   : 1:dmidecode-2.11-2.el6_1.x86_64                            16/37 
  Updating   : libjpeg-turbo-1.2.1-3.el6_5.x86_64                         17/37 
  Updating   : system-config-network-tui-1.6.0.el6.3-1.0.1.el6.noarch     18/37 
  Updating   : tzdata-2013i-1.el6.noarch                                  19/37 
  Updating   : pixman-0.26.2-5.1.el6_5.x86_64                             20/37 
  Cleanup    : dracut-kernel-004-335.0.1.el6.noarch                       21/37 
  Cleanup    : dracut-004-335.0.1.el6.noarch                              22/37 
  Cleanup    : yum-3.2.29-40.0.1.el6.noarch                               23/37 
  Cleanup    : kernel-firmware-2.6.32-431.el6.noarch                      24/37 
  Cleanup    : system-config-network-tui-1.6.0.el6.2-1.0.3.el6.noarch     25/37 
  Cleanup    : tzdata-2013g-1.el6.noarch                                  26/37 
  Cleanup    : systemtap-runtime-2.3-3.0.1.el6.x86_64                     27/37 
  Cleanup    : nss-tools-3.15.1-15.0.1.el6.x86_64                         28/37 
  Cleanup    : nss-3.15.1-15.0.1.el6.x86_64                               29/37 
  Cleanup    : nss-sysinit-3.15.1-15.0.1.el6.x86_64                       30/37 
  Cleanup    : nss-util-3.15.1-3.el6.x86_64                               31/37 
  Cleanup    : openssl-1.0.1e-15.el6.x86_64                               32/37 
  Cleanup    : ca-certificates-2013.1.94-65.0.el6.noarch                  33/37 
  Cleanup    : nspr-4.10.0-1.el6.x86_64                                   34/37 
  Cleanup    : 1:dmidecode-2.11-2.el6.x86_64                              35/37 
  Cleanup    : libjpeg-turbo-1.2.1-1.el6.x86_64                           36/37 
  Cleanup    : pixman-0.26.2-5.el6_4.x86_64                               37/37 
  Verifying  : pixman-0.26.2-5.1.el6_5.x86_64                              1/37 
  Verifying  : kernel-2.6.32-431.1.2.el6.x86_64                            2/37 
  Verifying  : tzdata-2013i-1.el6.noarch                                   3/37 
  Verifying  : openssl-1.0.1e-16.el6_5.1.x86_64                            4/37 
  Verifying  : kernel-uek-3.8.13-16.3.1.el6uek.x86_64                      5/37 
  Verifying  : system-config-network-tui-1.6.0.el6.3-1.0.1.el6.noarch      6/37 
  Verifying  : dracut-kernel-004-336.0.1.el6_5.2.noarch                    7/37 
  Verifying  : nss-sysinit-3.15.3-3.0.1.el6_5.x86_64                       8/37 
  Verifying  : nspr-4.10.2-1.el6_5.x86_64                                  9/37 
  Verifying  : kernel-firmware-2.6.32-431.1.2.el6.noarch                  10/37 
  Verifying  : ca-certificates-2013.1.95-65.1.el6_5.noarch                11/37 
  Verifying  : libjpeg-turbo-1.2.1-3.el6_5.x86_64                         12/37 
  Verifying  : 1:dmidecode-2.11-2.el6_1.x86_64                            13/37 
  Verifying  : nss-tools-3.15.3-3.0.1.el6_5.x86_64                        14/37 
  Verifying  : dracut-004-336.0.1.el6_5.2.noarch                          15/37 
  Verifying  : nss-3.15.3-3.0.1.el6_5.x86_64                              16/37 
  Verifying  : systemtap-runtime-2.3-4.0.1.el6_5.x86_64                   17/37 
  Verifying  : yum-3.2.29-43.0.1.el6_5.noarch                             18/37 
  Verifying  : kernel-uek-firmware-3.8.13-16.3.1.el6uek.noarch            19/37 
  Verifying  : nss-util-3.15.3-1.el6_5.x86_64                             20/37 
  Verifying  : libjpeg-turbo-1.2.1-1.el6.x86_64                           21/37 
  Verifying  : openssl-1.0.1e-15.el6.x86_64                               22/37 
  Verifying  : kernel-firmware-2.6.32-431.el6.noarch                      23/37 
  Verifying  : nss-3.15.1-15.0.1.el6.x86_64                               24/37 
  Verifying  : tzdata-2013g-1.el6.noarch                                  25/37 
  Verifying  : nss-tools-3.15.1-15.0.1.el6.x86_64                         26/37 
  Verifying  : dracut-kernel-004-335.0.1.el6.noarch                       27/37 
  Verifying  : ca-certificates-2013.1.94-65.0.el6.noarch                  28/37 
  Verifying  : nspr-4.10.0-1.el6.x86_64                                   29/37 
  Verifying  : yum-3.2.29-40.0.1.el6.noarch                               30/37 
  Verifying  : system-config-network-tui-1.6.0.el6.2-1.0.3.el6.noarch     31/37 
  Verifying  : nss-sysinit-3.15.1-15.0.1.el6.x86_64                       32/37 
  Verifying  : dracut-004-335.0.1.el6.noarch                              33/37 
  Verifying  : nss-util-3.15.1-3.el6.x86_64                               34/37 
  Verifying  : pixman-0.26.2-5.el6_4.x86_64                               35/37 
  Verifying  : 1:dmidecode-2.11-2.el6.x86_64                              36/37 
  Verifying  : systemtap-runtime-2.3-3.0.1.el6.x86_64                     37/37 

Installed:
  kernel.x86_64 0:2.6.32-431.1.2.el6                                            
  kernel-uek.x86_64 0:3.8.13-16.3.1.el6uek                                      
  kernel-uek-firmware.noarch 0:3.8.13-16.3.1.el6uek                             

Updated:
  ca-certificates.noarch 0:2013.1.95-65.1.el6_5                                 
  dmidecode.x86_64 1:2.11-2.el6_1                                               
  dracut.noarch 0:004-336.0.1.el6_5.2                                           
  dracut-kernel.noarch 0:004-336.0.1.el6_5.2                                    
  kernel-firmware.noarch 0:2.6.32-431.1.2.el6                                   
  libjpeg-turbo.x86_64 0:1.2.1-3.el6_5                                          
  nspr.x86_64 0:4.10.2-1.el6_5                                                  
  nss.x86_64 0:3.15.3-3.0.1.el6_5                                               
  nss-sysinit.x86_64 0:3.15.3-3.0.1.el6_5                                       
  nss-tools.x86_64 0:3.15.3-3.0.1.el6_5                                         
  nss-util.x86_64 0:3.15.3-1.el6_5                                              
  openssl.x86_64 0:1.0.1e-16.el6_5.1                                            
  pixman.x86_64 0:0.26.2-5.1.el6_5                                              
  system-config-network-tui.noarch 0:1.6.0.el6.3-1.0.1.el6                      
  systemtap-runtime.x86_64 0:2.3-4.0.1.el6_5                                    
  tzdata.noarch 0:2013i-1.el6                                                   
  yum.noarch 0:3.2.29-43.0.1.el6_5                                              

Complete!
--2013-12-28 10:59:55--  http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Resolving download.fedoraproject.org... 209.132.181.16, 80.239.156.215, 85.236.55.6, ...
Connecting to download.fedoraproject.org|209.132.181.16|:80... connected.
HTTP request sent, awaiting response... 302 FOUND
Location: http://fedora.cu.be/epel/6/x86_64/epel-release-6-8.noarch.rpm [following]
--2013-12-28 10:59:56--  http://fedora.cu.be/epel/6/x86_64/epel-release-6-8.noarch.rpm
Resolving fedora.cu.be... 194.50.97.11, 2001:67c:314::feed:cafe
Connecting to fedora.cu.be|194.50.97.11|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14540 (14K) [application/octet-stream]
Saving to: “epel-release-6-8.noarch.rpm”

100%[======================================>] 14,540      --.-K/s   in 0.03s   

2013-12-28 10:59:56 (447 KB/s) - “epel-release-6-8.noarch.rpm” saved [14540/14540]

warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
Loaded plugins: security
epel/metalink                                            |  23 kB     00:00     
epel                                                     | 4.2 kB     00:00     
epel/primary_db                                          | 5.8 MB     00:07     
Setting up Install Process
Package 1:make-3.81-20.el6.x86_64 already installed and latest version
No package kernel-devel-3.8.13-16.2.1.el6uek.x86_64 available.
Package 4:perl-5.10.1-136.el6.x86_64 already installed and latest version
Package wget-1.12-1.8.el6.x86_64 already installed and latest version
Package curl-7.19.7-37.el6_4.x86_64 already installed and latest version
Package bzip2-1.0.5-7.el6_0.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package dkms.noarch 0:2.2.0.3-20.el6 will be installed
--> Processing Dependency: kernel-devel for package: dkms-2.2.0.3-20.el6.noarch
---> Package gcc.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: libgomp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cpp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: libgomp.so.1()(64bit) for package: gcc-4.4.7-4.el6.x86_64
---> Package gcc-c++.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: libstdc++-devel = 4.4.7-4.el6 for package: gcc-c++-4.4.7-4.el6.x86_64
--> Processing Dependency: libmpfr.so.1()(64bit) for package: gcc-c++-4.4.7-4.el6.x86_64
---> Package kernel-uek-devel.x86_64 0:3.8.13-16.2.1.el6uek will be installed
--> Processing Dependency: libdtrace-ctf for package: kernel-uek-devel-3.8.13-16.2.1.el6uek.x86_64
---> Package openssl-devel.x86_64 0:1.0.1e-16.el6_5.1 will be installed
--> Processing Dependency: krb5-devel for package: openssl-devel-1.0.1e-16.el6_5.1.x86_64
---> Package readline-devel.x86_64 0:6.0-4.el6 will be installed
--> Processing Dependency: ncurses-devel for package: readline-devel-6.0-4.el6.x86_64
---> Package sqlite-devel.x86_64 0:3.6.20-1.el6 will be installed
---> Package zlib-devel.x86_64 0:1.2.3-29.el6 will be installed
--> Running transaction check
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed
--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-4.el6 will be installed
---> Package glibc-devel.x86_64 0:2.12-1.132.el6 will be installed
--> Processing Dependency: glibc-headers = 2.12-1.132.el6 for package: glibc-devel-2.12-1.132.el6.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.12-1.132.el6.x86_64
---> Package kernel-devel.x86_64 0:2.6.32-431.1.2.el6 will be installed
---> Package krb5-devel.x86_64 0:1.10.3-10.el6_4.6 will be installed
--> Processing Dependency: libselinux-devel for package: krb5-devel-1.10.3-10.el6_4.6.x86_64
--> Processing Dependency: libcom_err-devel for package: krb5-devel-1.10.3-10.el6_4.6.x86_64
--> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.10.3-10.el6_4.6.x86_64
---> Package libdtrace-ctf.x86_64 0:0.4.0-1 will be installed
---> Package libgomp.x86_64 0:4.4.7-4.el6 will be installed
---> Package libstdc++-devel.x86_64 0:4.4.7-4.el6 will be installed
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed
---> Package ncurses-devel.x86_64 0:5.7-3.20090208.el6 will be installed
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.12-1.132.el6 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.12-1.132.el6.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.132.el6.x86_64
---> Package keyutils-libs-devel.x86_64 0:1.4-4.el6 will be installed
---> Package libcom_err-devel.x86_64 0:1.42.8-1.0.1.el6 will be installed
---> Package libselinux-devel.x86_64 0:2.0.94-5.3.el6_4.1 will be installed
--> Processing Dependency: libsepol-devel >= 2.0.32-1 for package: libselinux-devel-2.0.94-5.3.el6_4.1.x86_64
--> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.0.94-5.3.el6_4.1.x86_64
---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed
--> Running transaction check
---> Package kernel-uek-headers.x86_64 0:3.8.13-16.3.1.el6uek will be installed
---> Package libsepol-devel.x86_64 0:2.0.41-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch   Version               Repository               Size
================================================================================
Installing:
 dkms                noarch 2.2.0.3-20.el6        epel                     75 k
 gcc                 x86_64 4.4.7-4.el6           public_ol6_latest        10 M
 gcc-c++             x86_64 4.4.7-4.el6           public_ol6_latest       4.7 M
 kernel-uek-devel    x86_64 3.8.13-16.2.1.el6uek  public_ol6_UEKR3_latest 8.8 M
 openssl-devel       x86_64 1.0.1e-16.el6_5.1     public_ol6_latest       1.2 M
 readline-devel      x86_64 6.0-4.el6             public_ol6_latest       134 k
 sqlite-devel        x86_64 3.6.20-1.el6          public_ol6_latest        80 k
 zlib-devel          x86_64 1.2.3-29.el6          public_ol6_latest        43 k
Installing for dependencies:
 cloog-ppl           x86_64 0.15.7-1.2.el6        public_ol6_latest        93 k
 cpp                 x86_64 4.4.7-4.el6           public_ol6_latest       3.7 M
 glibc-devel         x86_64 2.12-1.132.el6        public_ol6_latest       977 k
 glibc-headers       x86_64 2.12-1.132.el6        public_ol6_latest       608 k
 kernel-devel        x86_64 2.6.32-431.1.2.el6    public_ol6_latest       8.8 M
 kernel-uek-headers  x86_64 3.8.13-16.3.1.el6uek  public_ol6_UEKR3_latest 912 k
 keyutils-libs-devel x86_64 1.4-4.el6             public_ol6_latest        28 k
 krb5-devel          x86_64 1.10.3-10.el6_4.6     public_ol6_latest       494 k
 libcom_err-devel    x86_64 1.42.8-1.0.1.el6      public_ol6_latest        32 k
 libdtrace-ctf       x86_64 0.4.0-1               public_ol6_UEKR3_latest  27 k
 libgomp             x86_64 4.4.7-4.el6           public_ol6_latest       118 k
 libselinux-devel    x86_64 2.0.94-5.3.el6_4.1    public_ol6_latest       135 k
 libsepol-devel      x86_64 2.0.41-4.el6          public_ol6_latest        63 k
 libstdc++-devel     x86_64 4.4.7-4.el6           public_ol6_latest       1.6 M
 mpfr                x86_64 2.4.1-6.el6           public_ol6_latest       156 k
 ncurses-devel       x86_64 5.7-3.20090208.el6    public_ol6_latest       643 k
 ppl                 x86_64 0.10.2-11.el6         public_ol6_latest       1.3 M

Transaction Summary
================================================================================
Install      25 Package(s)

Total download size: 45 M
Installed size: 122 M
Downloading Packages:
(1/25): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm              |  93 kB     00:00     
(2/25): cpp-4.4.7-4.el6.x86_64.rpm                       | 3.7 MB     00:01     
(3/25): dkms-2.2.0.3-20.el6.noarch.rpm                   |  75 kB     00:00     
(4/25): gcc-4.4.7-4.el6.x86_64.rpm                       |  10 MB     00:03     
(5/25): gcc-c++-4.4.7-4.el6.x86_64.rpm                   | 4.7 MB     00:01     
(6/25): glibc-devel-2.12-1.132.el6.x86_64.rpm            | 977 kB     00:00     
(7/25): glibc-headers-2.12-1.132.el6.x86_64.rpm          | 608 kB     00:00     
(8/25): kernel-devel-2.6.32-431.1.2.el6.x86_64.rpm       | 8.8 MB     00:03     
(9/25): kernel-uek-devel-3.8.13-16.2.1.el6uek.x86_64.rpm | 8.8 MB     00:09     
(10/25): kernel-uek-headers-3.8.13-16.3.1.el6uek.x86_64. | 912 kB     00:00     
(11/25): keyutils-libs-devel-1.4-4.el6.x86_64.rpm        |  28 kB     00:00     
(12/25): krb5-devel-1.10.3-10.el6_4.6.x86_64.rpm         | 494 kB     00:00     
(13/25): libcom_err-devel-1.42.8-1.0.1.el6.x86_64.rpm    |  32 kB     00:00     
(14/25): libdtrace-ctf-0.4.0-1.x86_64.rpm                |  27 kB     00:00     
(15/25): libgomp-4.4.7-4.el6.x86_64.rpm                  | 118 kB     00:00     
(16/25): libselinux-devel-2.0.94-5.3.el6_4.1.x86_64.rpm  | 135 kB     00:00     
(17/25): libsepol-devel-2.0.41-4.el6.x86_64.rpm          |  63 kB     00:00     
(18/25): libstdc++-devel-4.4.7-4.el6.x86_64.rpm          | 1.6 MB     00:00     
(19/25): mpfr-2.4.1-6.el6.x86_64.rpm                     | 156 kB     00:00     
(20/25): ncurses-devel-5.7-3.20090208.el6.x86_64.rpm     | 643 kB     00:00     
(21/25): openssl-devel-1.0.1e-16.el6_5.1.x86_64.rpm      | 1.2 MB     00:00     
(22/25): ppl-0.10.2-11.el6.x86_64.rpm                    | 1.3 MB     00:01     
(23/25): readline-devel-6.0-4.el6.x86_64.rpm             | 134 kB     00:00     
(24/25): sqlite-devel-3.6.20-1.el6.x86_64.rpm            |  80 kB     00:00     
(25/25): zlib-devel-1.2.3-29.el6.x86_64.rpm              |  43 kB     00:00     
--------------------------------------------------------------------------------
Total                                           1.6 MB/s |  45 MB     00:27     
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
 Userid : EPEL (6) 
 Package: epel-release-6-8.noarch (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : mpfr-2.4.1-6.el6.x86_64                                     1/25 
  Installing : cpp-4.4.7-4.el6.x86_64                                      2/25 
  Installing : libsepol-devel-2.0.41-4.el6.x86_64                          3/25 
  Installing : libselinux-devel-2.0.94-5.3.el6_4.1.x86_64                  4/25 
  Installing : ppl-0.10.2-11.el6.x86_64                                    5/25 
  Installing : cloog-ppl-0.15.7-1.2.el6.x86_64                             6/25 
  Installing : libgomp-4.4.7-4.el6.x86_64                                  7/25 
  Installing : libcom_err-devel-1.42.8-1.0.1.el6.x86_64                    8/25 
  Installing : kernel-uek-headers-3.8.13-16.3.1.el6uek.x86_64              9/25 
  Installing : glibc-headers-2.12-1.132.el6.x86_64                        10/25 
  Installing : glibc-devel-2.12-1.132.el6.x86_64                          11/25 
  Installing : gcc-4.4.7-4.el6.x86_64                                     12/25 
  Installing : libdtrace-ctf-0.4.0-1.x86_64                               13/25 
  Installing : zlib-devel-1.2.3-29.el6.x86_64                             14/25 
  Installing : ncurses-devel-5.7-3.20090208.el6.x86_64                    15/25 
  Installing : keyutils-libs-devel-1.4-4.el6.x86_64                       16/25 
  Installing : krb5-devel-1.10.3-10.el6_4.6.x86_64                        17/25 
  Installing : libstdc++-devel-4.4.7-4.el6.x86_64                         18/25 
  Installing : kernel-devel-2.6.32-431.1.2.el6.x86_64                     19/25 
  Installing : dkms-2.2.0.3-20.el6.noarch                                 20/25 
  Installing : gcc-c++-4.4.7-4.el6.x86_64                                 21/25 
  Installing : openssl-devel-1.0.1e-16.el6_5.1.x86_64                     22/25 
  Installing : readline-devel-6.0-4.el6.x86_64                            23/25 
  Installing : kernel-uek-devel-3.8.13-16.2.1.el6uek.x86_64               24/25 
  Installing : sqlite-devel-3.6.20-1.el6.x86_64                           25/25 
  Verifying  : readline-devel-6.0-4.el6.x86_64                             1/25 
  Verifying  : glibc-devel-2.12-1.132.el6.x86_64                           2/25 
  Verifying  : libselinux-devel-2.0.94-5.3.el6_4.1.x86_64                  3/25 
  Verifying  : openssl-devel-1.0.1e-16.el6_5.1.x86_64                      4/25 
  Verifying  : glibc-headers-2.12-1.132.el6.x86_64                         5/25 
  Verifying  : kernel-devel-2.6.32-431.1.2.el6.x86_64                      6/25 
  Verifying  : libstdc++-devel-4.4.7-4.el6.x86_64                          7/25 
  Verifying  : keyutils-libs-devel-1.4-4.el6.x86_64                        8/25 
  Verifying  : cpp-4.4.7-4.el6.x86_64                                      9/25 
  Verifying  : ncurses-devel-5.7-3.20090208.el6.x86_64                    10/25 
  Verifying  : libdtrace-ctf-0.4.0-1.x86_64                               11/25 
  Verifying  : mpfr-2.4.1-6.el6.x86_64                                    12/25 
  Verifying  : kernel-uek-devel-3.8.13-16.2.1.el6uek.x86_64               13/25 
  Verifying  : zlib-devel-1.2.3-29.el6.x86_64                             14/25 
  Verifying  : gcc-c++-4.4.7-4.el6.x86_64                                 15/25 
  Verifying  : cloog-ppl-0.15.7-1.2.el6.x86_64                            16/25 
  Verifying  : kernel-uek-headers-3.8.13-16.3.1.el6uek.x86_64             17/25 
  Verifying  : libcom_err-devel-1.42.8-1.0.1.el6.x86_64                   18/25 
  Verifying  : libgomp-4.4.7-4.el6.x86_64                                 19/25 
  Verifying  : gcc-4.4.7-4.el6.x86_64                                     20/25 
  Verifying  : dkms-2.2.0.3-20.el6.noarch                                 21/25 
  Verifying  : ppl-0.10.2-11.el6.x86_64                                   22/25 
  Verifying  : libsepol-devel-2.0.41-4.el6.x86_64                         23/25 
  Verifying  : sqlite-devel-3.6.20-1.el6.x86_64                           24/25 
  Verifying  : krb5-devel-1.10.3-10.el6_4.6.x86_64                        25/25 

Installed:
  dkms.noarch 0:2.2.0.3-20.el6                                                  
  gcc.x86_64 0:4.4.7-4.el6                                                      
  gcc-c++.x86_64 0:4.4.7-4.el6                                                  
  kernel-uek-devel.x86_64 0:3.8.13-16.2.1.el6uek                                
  openssl-devel.x86_64 0:1.0.1e-16.el6_5.1                                      
  readline-devel.x86_64 0:6.0-4.el6                                             
  sqlite-devel.x86_64 0:3.6.20-1.el6                                            
  zlib-devel.x86_64 0:1.2.3-29.el6                                              

Dependency Installed:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6                                             
  cpp.x86_64 0:4.4.7-4.el6                                                      
  glibc-devel.x86_64 0:2.12-1.132.el6                                           
  glibc-headers.x86_64 0:2.12-1.132.el6                                         
  kernel-devel.x86_64 0:2.6.32-431.1.2.el6                                      
  kernel-uek-headers.x86_64 0:3.8.13-16.3.1.el6uek                              
  keyutils-libs-devel.x86_64 0:1.4-4.el6                                        
  krb5-devel.x86_64 0:1.10.3-10.el6_4.6                                         
  libcom_err-devel.x86_64 0:1.42.8-1.0.1.el6                                    
  libdtrace-ctf.x86_64 0:0.4.0-1                                                
  libgomp.x86_64 0:4.4.7-4.el6                                                  
  libselinux-devel.x86_64 0:2.0.94-5.3.el6_4.1                                  
  libsepol-devel.x86_64 0:2.0.41-4.el6                                          
  libstdc++-devel.x86_64 0:4.4.7-4.el6                                          
  mpfr.x86_64 0:2.4.1-6.el6                                                     
  ncurses-devel.x86_64 0:5.7-3.20090208.el6                                     
  ppl.x86_64 0:0.10.2-11.el6                                                    

Complete!
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './chef.sh'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14101  100 14101    0     0  13933      0  0:00:01  0:00:01 --:--:-- 48126
Downloading Chef  for el...
downloading https://www.opscode.com/chef/metadata?v=&prerelease=false&p=el&pv=6&m=x86_64
  to file /tmp/install.sh.21115/metadata.txt
trying wget...
url	https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.8.2-1.el6.x86_64.rpm
md5	10f3d0da82efa973fe91cc24a6a74549
sha256	044558f38d25bbf75dbd5790ccce892a38e5e9f2a091ed55367ab914fbd1cfed
downloaded metadata file looks valid...
downloading https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.8.2-1.el6.x86_64.rpm
  to file /tmp/install.sh.21115/chef-.x86_64.rpm
trying wget...
Checksum compare with sha256sum succeeded.
Installing Chef 
installing with rpm...
warning: /tmp/install.sh.21115/chef-.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
Preparing...                ########################################### [100%]
   1:chef                   ########################################### [100%]
Thank you for installing Chef!
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './puppet.sh'
--2013-12-28 11:01:24--  https://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
Resolving yum.puppetlabs.com... 198.58.114.168, 2600:3c00::f03c:91ff:fe69:6bf0
Connecting to yum.puppetlabs.com|198.58.114.168|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5712 (5.6K) [application/x-redhat-package-manager]
Saving to: “puppetlabs-release-6-7.noarch.rpm”

100%[======================================>] 5,712       --.-K/s   in 0s      

2013-12-28 11:01:25 (55.8 MB/s) - “puppetlabs-release-6-7.noarch.rpm” saved [5712/5712]

warning: puppetlabs-release-6-7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 4bd6ec30: NOKEY
Preparing...                ########################################### [100%]
   1:puppetlabs-release     ########################################### [100%]
Loaded plugins: security
puppetlabs-deps                                          | 1.9 kB     00:00     
puppetlabs-deps/primary_db                               |  21 kB     00:00     
puppetlabs-products                                      | 1.9 kB     00:00     
puppetlabs-products/primary_db                           | 101 kB     00:00     
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package facter.x86_64 1:1.7.4-1.el6 will be installed
--> Processing Dependency: ruby >= 1.8.5 for package: 1:facter-1.7.4-1.el6.x86_64
--> Processing Dependency: /usr/bin/ruby for package: 1:facter-1.7.4-1.el6.x86_64
---> Package puppet.noarch 0:3.4.1-1.el6 will be installed
--> Processing Dependency: ruby-rgen >= 0.6.5 for package: puppet-3.4.1-1.el6.noarch
--> Processing Dependency: hiera >= 1.0.0 for package: puppet-3.4.1-1.el6.noarch
--> Processing Dependency: ruby-augeas for package: puppet-3.4.1-1.el6.noarch
--> Processing Dependency: ruby-shadow for package: puppet-3.4.1-1.el6.noarch
--> Processing Dependency: ruby(selinux) for package: puppet-3.4.1-1.el6.noarch
--> Running transaction check
---> Package hiera.noarch 0:1.3.0-1.el6 will be installed
--> Processing Dependency: rubygem-json for package: hiera-1.3.0-1.el6.noarch
---> Package libselinux-ruby.x86_64 0:2.0.94-5.3.el6_4.1 will be installed
---> Package ruby.x86_64 0:1.8.7.352-13.el6 will be installed
--> Processing Dependency: ruby-libs = 1.8.7.352-13.el6 for package: ruby-1.8.7.352-13.el6.x86_64
--> Processing Dependency: libruby.so.1.8()(64bit) for package: ruby-1.8.7.352-13.el6.x86_64
---> Package ruby-augeas.x86_64 0:0.4.1-1.el6 will be installed
--> Processing Dependency: augeas-libs >= 0.8.0 for package: ruby-augeas-0.4.1-1.el6.x86_64
--> Processing Dependency: libaugeas.so.0(AUGEAS_0.8.0)(64bit) for package: ruby-augeas-0.4.1-1.el6.x86_64
--> Processing Dependency: libaugeas.so.0(AUGEAS_0.12.0)(64bit) for package: ruby-augeas-0.4.1-1.el6.x86_64
--> Processing Dependency: libaugeas.so.0(AUGEAS_0.11.0)(64bit) for package: ruby-augeas-0.4.1-1.el6.x86_64
--> Processing Dependency: libaugeas.so.0(AUGEAS_0.10.0)(64bit) for package: ruby-augeas-0.4.1-1.el6.x86_64
--> Processing Dependency: libaugeas.so.0(AUGEAS_0.1.0)(64bit) for package: ruby-augeas-0.4.1-1.el6.x86_64
--> Processing Dependency: libaugeas.so.0()(64bit) for package: ruby-augeas-0.4.1-1.el6.x86_64
---> Package ruby-rgen.noarch 0:0.6.5-1.el6 will be installed
---> Package ruby-shadow.x86_64 0:1.4.1-13.el6 will be installed
--> Running transaction check
---> Package augeas-libs.x86_64 0:1.0.0-5.el6 will be installed
---> Package ruby-libs.x86_64 0:1.8.7.352-13.el6 will be installed
--> Processing Dependency: libreadline.so.5()(64bit) for package: ruby-libs-1.8.7.352-13.el6.x86_64
---> Package rubygem-json.x86_64 0:1.5.5-1.el6 will be installed
--> Processing Dependency: rubygems for package: rubygem-json-1.5.5-1.el6.x86_64
--> Running transaction check
---> Package compat-readline5.x86_64 0:5.2-17.1.el6 will be installed
---> Package rubygems.noarch 0:1.3.7-5.el6 will be installed
--> Processing Dependency: ruby-rdoc for package: rubygems-1.3.7-5.el6.noarch
--> Running transaction check
---> Package ruby-rdoc.x86_64 0:1.8.7.352-13.el6 will be installed
--> Processing Dependency: ruby-irb = 1.8.7.352-13.el6 for package: ruby-rdoc-1.8.7.352-13.el6.x86_64
--> Running transaction check
---> Package ruby-irb.x86_64 0:1.8.7.352-13.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch     Version                Repository             Size
================================================================================
Installing:
 facter             x86_64   1:1.7.4-1.el6          puppetlabs-products    87 k
 puppet             noarch   3.4.1-1.el6            puppetlabs-products   1.1 M
Installing for dependencies:
 augeas-libs        x86_64   1.0.0-5.el6            public_ol6_latest     308 k
 compat-readline5   x86_64   5.2-17.1.el6           public_ol6_latest     129 k
 hiera              noarch   1.3.0-1.el6            puppetlabs-products    23 k
 libselinux-ruby    x86_64   2.0.94-5.3.el6_4.1     public_ol6_latest      98 k
 ruby               x86_64   1.8.7.352-13.el6       public_ol6_latest     534 k
 ruby-augeas        x86_64   0.4.1-1.el6            epel                   21 k
 ruby-irb           x86_64   1.8.7.352-13.el6       public_ol6_latest     313 k
 ruby-libs          x86_64   1.8.7.352-13.el6       public_ol6_latest     1.6 M
 ruby-rdoc          x86_64   1.8.7.352-13.el6       public_ol6_latest     376 k
 ruby-rgen          noarch   0.6.5-1.el6            puppetlabs-deps        87 k
 ruby-shadow        x86_64   1.4.1-13.el6           epel                   11 k
 rubygem-json       x86_64   1.5.5-1.el6            puppetlabs-deps       763 k
 rubygems           noarch   1.3.7-5.el6            public_ol6_latest     206 k

Transaction Summary
================================================================================
Install      15 Package(s)

Total download size: 5.7 M
Installed size: 17 M
Downloading Packages:
(1/15): augeas-libs-1.0.0-5.el6.x86_64.rpm               | 308 kB     00:00     
(2/15): compat-readline5-5.2-17.1.el6.x86_64.rpm         | 129 kB     00:00     
(3/15): facter-1.7.4-1.el6.x86_64.rpm                    |  87 kB     00:00     
(4/15): hiera-1.3.0-1.el6.noarch.rpm                     |  23 kB     00:00     
(5/15): libselinux-ruby-2.0.94-5.3.el6_4.1.x86_64.rpm    |  98 kB     00:00     
(6/15): puppet-3.4.1-1.el6.noarch.rpm                    | 1.1 MB     00:01     
(7/15): ruby-1.8.7.352-13.el6.x86_64.rpm                 | 534 kB     00:00     
(8/15): ruby-augeas-0.4.1-1.el6.x86_64.rpm               |  21 kB     00:00     
(9/15): ruby-irb-1.8.7.352-13.el6.x86_64.rpm             | 313 kB     00:00     
(10/15): ruby-libs-1.8.7.352-13.el6.x86_64.rpm           | 1.6 MB     00:00     
(11/15): ruby-rdoc-1.8.7.352-13.el6.x86_64.rpm           | 376 kB     00:00     
(12/15): ruby-rgen-0.6.5-1.el6.noarch.rpm                |  87 kB     00:00     
(13/15): ruby-shadow-1.4.1-13.el6.x86_64.rpm             |  11 kB     00:00     
(14/15): rubygem-json-1.5.5-1.el6.x86_64.rpm             | 763 kB     00:01     
(15/15): rubygems-1.3.7-5.el6.noarch.rpm                 | 206 kB     00:00     
--------------------------------------------------------------------------------
Total                                           753 kB/s | 5.7 MB     00:07     
warning: rpmts_HdrFromFdno: Header V4 RSA/SHA512 Signature, key ID 4bd6ec30: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
Importing GPG key 0x4BD6EC30:
 Userid : Puppet Labs Release Key (Puppet Labs Release Key) 
 Package: puppetlabs-release-6-7.noarch (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : augeas-libs-1.0.0-5.el6.x86_64                              1/15 
  Installing : compat-readline5-5.2-17.1.el6.x86_64                        2/15 
  Installing : ruby-libs-1.8.7.352-13.el6.x86_64                           3/15 
  Installing : ruby-1.8.7.352-13.el6.x86_64                                4/15 
  Installing : ruby-rgen-0.6.5-1.el6.noarch                                5/15 
  Installing : ruby-irb-1.8.7.352-13.el6.x86_64                            6/15 
  Installing : ruby-rdoc-1.8.7.352-13.el6.x86_64                           7/15 
  Installing : rubygems-1.3.7-5.el6.noarch                                 8/15 
  Installing : rubygem-json-1.5.5-1.el6.x86_64                             9/15 
  Installing : hiera-1.3.0-1.el6.noarch                                   10/15 
  Installing : 1:facter-1.7.4-1.el6.x86_64                                11/15 
  Installing : ruby-augeas-0.4.1-1.el6.x86_64                             12/15 
  Installing : ruby-shadow-1.4.1-13.el6.x86_64                            13/15 
  Installing : libselinux-ruby-2.0.94-5.3.el6_4.1.x86_64                  14/15 
  Installing : puppet-3.4.1-1.el6.noarch                                  15/15 
  Verifying  : hiera-1.3.0-1.el6.noarch                                    1/15 
  Verifying  : libselinux-ruby-2.0.94-5.3.el6_4.1.x86_64                   2/15 
  Verifying  : ruby-augeas-0.4.1-1.el6.x86_64                              3/15 
  Verifying  : ruby-1.8.7.352-13.el6.x86_64                                4/15 
  Verifying  : compat-readline5-5.2-17.1.el6.x86_64                        5/15 
  Verifying  : ruby-rgen-0.6.5-1.el6.noarch                                6/15 
  Verifying  : ruby-rdoc-1.8.7.352-13.el6.x86_64                           7/15 
  Verifying  : puppet-3.4.1-1.el6.noarch                                   8/15 
  Verifying  : ruby-irb-1.8.7.352-13.el6.x86_64                            9/15 
  Verifying  : 1:facter-1.7.4-1.el6.x86_64                                10/15 
  Verifying  : rubygems-1.3.7-5.el6.noarch                                11/15 
  Verifying  : ruby-libs-1.8.7.352-13.el6.x86_64                          12/15 
  Verifying  : rubygem-json-1.5.5-1.el6.x86_64                            13/15 
  Verifying  : augeas-libs-1.0.0-5.el6.x86_64                             14/15 
  Verifying  : ruby-shadow-1.4.1-13.el6.x86_64                            15/15 

Installed:
  facter.x86_64 1:1.7.4-1.el6            puppet.noarch 0:3.4.1-1.el6           

Dependency Installed:
  augeas-libs.x86_64 0:1.0.0-5.el6                                              
  compat-readline5.x86_64 0:5.2-17.1.el6                                        
  hiera.noarch 0:1.3.0-1.el6                                                    
  libselinux-ruby.x86_64 0:2.0.94-5.3.el6_4.1                                   
  ruby.x86_64 0:1.8.7.352-13.el6                                                
  ruby-augeas.x86_64 0:0.4.1-1.el6                                              
  ruby-irb.x86_64 0:1.8.7.352-13.el6                                            
  ruby-libs.x86_64 0:1.8.7.352-13.el6                                           
  ruby-rdoc.x86_64 0:1.8.7.352-13.el6                                           
  ruby-rgen.noarch 0:0.6.5-1.el6                                                
  ruby-shadow.x86_64 0:1.4.1-13.el6                                             
  rubygem-json.x86_64 0:1.5.5-1.el6                                             
  rubygems.noarch 0:1.3.7-5.el6                                                 

Complete!

Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './vagrant.sh'
Changing password for user vagrant.
passwd: all authentication tokens updated successfully.
--2013-12-28 11:01:50--  https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub
Resolving raw.github.com... 185.31.16.133
Connecting to raw.github.com|185.31.16.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 409 [text/plain]
Saving to: “/home/vagrant/.ssh/authorized_keys”

100%[======================================>] 409         --.-K/s   in 0s      

2013-12-28 11:01:50 (3.05 MB/s) - “/home/vagrant/.ssh/authorized_keys” saved [409/409]

Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './virtualbox.sh'
cat: /home/veewee/.vbox_version: No such file or directory
/home/veewee/VBoxGuestAdditions_.iso: No such file or directory
sh: /mnt/VBoxLinuxAdditions.run: No such file or directory
umount: /mnt: not mounted
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './cleanup.sh'
Loaded plugins: security
Setting up Remove Process
No Match for argument: avahi
Package(s) avahi available, but not installed.
No Match for argument: bitstream-vera-fonts
Resolving Dependencies
--> Running transaction check
---> Package freetype.x86_64 0:2.3.11-14.el6_3.1 will be erased
--> Processing Dependency: libfreetype.so.6()(64bit) for package: libXft-2.3.1-2.el6.x86_64
--> Processing Dependency: libfreetype.so.6()(64bit) for package: cairo-1.8.8-3.1.el6.x86_64
--> Processing Dependency: libfreetype.so.6()(64bit) for package: pango-1.28.1-7.0.1.el6_3.x86_64
--> Processing Dependency: libfreetype.so.6()(64bit) for package: fontconfig-2.8.0-3.el6.x86_64
--> Processing Dependency: freetype >= 2.1.3-3 for package: pango-1.28.1-7.0.1.el6_3.x86_64
--> Processing Dependency: freetype >= 2.1.3-3 for package: pango-1.28.1-7.0.1.el6_3.x86_64
--> Processing Dependency: freetype >= 2.1.4 for package: fontconfig-2.8.0-3.el6.x86_64
---> Package gtk2.x86_64 0:2.20.1-4.el6 will be erased
--> Processing Dependency: libgdk_pixbuf-2.0.so.0()(64bit) for package: libfprint-0.1.0-19.pre2.el6.x86_64
---> Package hicolor-icon-theme.noarch 0:0.11-1.1.el6 will be erased
---> Package libX11.x86_64 0:1.5.0-4.el6 will be erased
--> Processing Dependency: libX11.so.6()(64bit) for package: libXi-1.6.1-3.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXrender-0.9.7-2.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXcomposite-0.4.3-4.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXfixes-5.0-3.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXcursor-1.1.13-6.20130524git8f677eaea.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXdamage-1.1.3-4.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXinerama-1.1.2-2.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXext-1.3.1-2.el6.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: libXrandr-1.4.0-1.el6.x86_64
--> Processing Dependency: libX11 >= 1.4.99.1 for package: libXi-1.6.1-3.el6.x86_64
--> Running transaction check
---> Package cairo.x86_64 0:1.8.8-3.1.el6 will be erased
---> Package fontconfig.x86_64 0:2.8.0-3.el6 will be erased
---> Package libXcomposite.x86_64 0:0.4.3-4.el6 will be erased
---> Package libXcursor.x86_64 0:1.1.13-6.20130524git8f677eaea.el6 will be erased
---> Package libXdamage.x86_64 0:1.1.3-4.el6 will be erased
---> Package libXext.x86_64 0:1.3.1-2.el6 will be erased
---> Package libXfixes.x86_64 0:5.0-3.el6 will be erased
---> Package libXft.x86_64 0:2.3.1-2.el6 will be erased
---> Package libXi.x86_64 0:1.6.1-3.el6 will be erased
---> Package libXinerama.x86_64 0:1.1.2-2.el6 will be erased
---> Package libXrandr.x86_64 0:1.4.0-1.el6 will be erased
---> Package libXrender.x86_64 0:0.9.7-2.el6 will be erased
---> Package libfprint.x86_64 0:0.1.0-19.pre2.el6 will be erased
--> Processing Dependency: libfprint.so.0()(64bit) for package: fprintd-0.1-21.git04fd09cfa.el6.x86_64
---> Package pango.x86_64 0:1.28.1-7.0.1.el6_3 will be erased
--> Running transaction check
---> Package fprintd.x86_64 0:0.1-21.git04fd09cfa.el6 will be erased
--> Processing Dependency: fprintd = 0.1-21.git04fd09cfa.el6 for package: fprintd-pam-0.1-21.git04fd09cfa.el6.x86_64
--> Running transaction check
---> Package fprintd-pam.x86_64 0:0.1-21.git04fd09cfa.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package     Arch   Version
                      Repository                                           Size
================================================================================
Removing:
 freetype    x86_64 2.3.11-14.el6_3.1
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 816 k
 gtk2        x86_64 2.20.1-4.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  13 M
 hicolor-icon-theme
             noarch 0.11-1.1.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  44 k
 libX11      x86_64 1.5.0-4.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 1.2 M
Removing for dependencies:
 cairo       x86_64 1.8.8-3.1.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 779 k
 fontconfig  x86_64 2.8.0-3.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 440 k
 fprintd     x86_64 0.1-21.git04fd09cfa.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 106 k
 fprintd-pam x86_64 0.1-21.git04fd09cfa.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  17 k
 libXcomposite
             x86_64 0.4.3-4.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  31 k
 libXcursor  x86_64 1.1.13-6.20130524git8f677eaea.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  41 k
 libXdamage  x86_64 1.1.3-4.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  24 k
 libXext     x86_64 1.3.1-2.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  80 k
 libXfixes   x86_64 5.0-3.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  40 k
 libXft      x86_64 2.3.1-2.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 116 k
 libXi       x86_64 1.6.1-3.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  63 k
 libXinerama x86_64 1.1.2-2.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  32 k
 libXrandr   x86_64 1.4.0-1.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  79 k
 libXrender  x86_64 0.9.7-2.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5  56 k
 libfprint   x86_64 0.1.0-19.pre2.el6
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 261 k
 pango       x86_64 1.28.1-7.0.1.el6_3
                      @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 1.0 M

Transaction Summary
================================================================================
Remove       20 Package(s)

Installed size: 18 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : fprintd-pam-0.1-21.git04fd09cfa.el6.x86_64                  1/20 
  Erasing    : fprintd-0.1-21.git04fd09cfa.el6.x86_64                      2/20 
  Erasing    : libfprint-0.1.0-19.pre2.el6.x86_64                          3/20 
  Erasing    : gtk2-2.20.1-4.el6.x86_64                                    4/20 
  Erasing    : pango-1.28.1-7.0.1.el6_3.x86_64                             5/20 
  Erasing    : libXft-2.3.1-2.el6.x86_64                                   6/20 
  Erasing    : cairo-1.8.8-3.1.el6.x86_64                                  7/20 
  Erasing    : libXcursor-1.1.13-6.20130524git8f677eaea.el6.x86_64         8/20 
  Erasing    : libXrandr-1.4.0-1.el6.x86_64                                9/20 
  Erasing    : libXdamage-1.1.3-4.el6.x86_64                              10/20 
  Erasing    : libXi-1.6.1-3.el6.x86_64                                   11/20 
  Erasing    : libXinerama-1.1.2-2.el6.x86_64                             12/20 
  Erasing    : libXext-1.3.1-2.el6.x86_64                                 13/20 
  Erasing    : libXfixes-5.0-3.el6.x86_64                                 14/20 
  Erasing    : libXrender-0.9.7-2.el6.x86_64                              15/20 
  Erasing    : fontconfig-2.8.0-3.el6.x86_64                              16/20 
  Erasing    : libXcomposite-0.4.3-4.el6.x86_64                           17/20 
  Erasing    : hicolor-icon-theme-0.11-1.1.el6.noarch                     18/20 
  Erasing    : libX11-1.5.0-4.el6.x86_64                                  19/20 
  Erasing    : freetype-2.3.11-14.el6_3.1.x86_64                          20/20 
  Verifying  : libXinerama-1.1.2-2.el6.x86_64                              1/20 
  Verifying  : libXrandr-1.4.0-1.el6.x86_64                                2/20 
  Verifying  : libXfixes-5.0-3.el6.x86_64                                  3/20 
  Verifying  : libXrender-0.9.7-2.el6.x86_64                               4/20 
  Verifying  : pango-1.28.1-7.0.1.el6_3.x86_64                             5/20 
  Verifying  : hicolor-icon-theme-0.11-1.1.el6.noarch                      6/20 
  Verifying  : cairo-1.8.8-3.1.el6.x86_64                                  7/20 
  Verifying  : fprintd-0.1-21.git04fd09cfa.el6.x86_64                      8/20 
  Verifying  : libXext-1.3.1-2.el6.x86_64                                  9/20 
  Verifying  : freetype-2.3.11-14.el6_3.1.x86_64                          10/20 
  Verifying  : libfprint-0.1.0-19.pre2.el6.x86_64                         11/20 
  Verifying  : libXi-1.6.1-3.el6.x86_64                                   12/20 
  Verifying  : libXcursor-1.1.13-6.20130524git8f677eaea.el6.x86_64        13/20 
  Verifying  : fprintd-pam-0.1-21.git04fd09cfa.el6.x86_64                 14/20 
  Verifying  : libX11-1.5.0-4.el6.x86_64                                  15/20 
  Verifying  : libXcomposite-0.4.3-4.el6.x86_64                           16/20 
  Verifying  : fontconfig-2.8.0-3.el6.x86_64                              17/20 
  Verifying  : libXdamage-1.1.3-4.el6.x86_64                              18/20 
  Verifying  : gtk2-2.20.1-4.el6.x86_64                                   19/20 
  Verifying  : libXft-2.3.1-2.el6.x86_64                                  20/20 

Removed:
  freetype.x86_64 0:2.3.11-14.el6_3.1           gtk2.x86_64 0:2.20.1-4.el6      
  hicolor-icon-theme.noarch 0:0.11-1.1.el6      libX11.x86_64 0:1.5.0-4.el6     

Dependency Removed:
  cairo.x86_64 0:1.8.8-3.1.el6                                                  
  fontconfig.x86_64 0:2.8.0-3.el6                                               
  fprintd.x86_64 0:0.1-21.git04fd09cfa.el6                                      
  fprintd-pam.x86_64 0:0.1-21.git04fd09cfa.el6                                  
  libXcomposite.x86_64 0:0.4.3-4.el6                                            
  libXcursor.x86_64 0:1.1.13-6.20130524git8f677eaea.el6                         
  libXdamage.x86_64 0:1.1.3-4.el6                                               
  libXext.x86_64 0:1.3.1-2.el6                                                  
  libXfixes.x86_64 0:5.0-3.el6                                                  
  libXft.x86_64 0:2.3.1-2.el6                                                   
  libXi.x86_64 0:1.6.1-3.el6                                                    
  libXinerama.x86_64 0:1.1.2-2.el6                                              
  libXrandr.x86_64 0:1.4.0-1.el6                                                
  libXrender.x86_64 0:0.9.7-2.el6                                               
  libfprint.x86_64 0:0.1.0-19.pre2.el6                                          
  pango.x86_64 0:1.28.1-7.0.1.el6_3                                             

Complete!
Loaded plugins: security
Cleaning repos: epel public_ol6_UEKR3_latest public_ol6_latest puppetlabs-deps
              : puppetlabs-products
Cleaning up Everything
Waiting for ssh login on 192.168.122.162 with user veewee to sshd on port => 22 to work, timeout=10000 sec
.
Executing command: echo 'veewee'|sudo -S sh './zerodisk.sh'
dd: writing `/EMPTY': No space left on device
6808+0 records in
6807+0 records out
7138480128 bytes (7.1 GB) copied, 84.4773 s, 84.5 MB/s
The box oel65_kvm was built successfully!
You can now login to the box with:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 22 -l veewee 192.168.122.162

Now your box is ready. You can login (username and password are both veewee) to it over ssh to do some checkups but I trust the build and I will just shut down the VM.

$USER@$HOST ~/veewee $ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 22 -l veewee 192.168.122.162
Warning: Permanently added '192.168.122.162' (RSA) to the list of known hosts.
veewee@192.168.122.162's password: 
Last login: Sat Dec 28 11:05:36 2013 from 192.168.122.1
Welcome to Veewee built Vagrant Base Box.
[veewee@localhost ~]$ sudo /sbin/shutdown -h now

Broadcast message from veewee@localhost.localdomain
	(/dev/pts/0) at 11:07 ...

The system is going down for halt NOW!
[veewee@localhost ~]$ Connection to 192.168.122.162 closed by remote host.
Connection to 192.168.122.162 closed.

Export to Vagrant format

 
$USER@$HOST ~/veewee $ veewee kvm export oel65_kvm
Creating a temporary directory for export
Adding additional files
Creating Vagrantfile
Copying the box volume
Packaging the box
Cleaning up temporary directory

To import it into vagrant type:
vagrant box add 'oel65_kvm' '/home/$USER/veewee/oel65_kvm.box'

To use it:
vagrant init 'oel65_kvm'
vagrant up --provider=libvirt
vagrant ssh

Installing a compatible vagrant

At the time I was testing this there was no libvirt provider for vagrant 1.4. Therefore I installed an older version (1.3.5) which was already compatible with the provider.

Install vagrant 1.3.5

Download vagrant from the official web site (here) and install the package

sudo dpkg -i vagrant_1.3.5_x86_64.deb

Install vagrant-libvirt

vagrant plugin install vagrant-libvirt 

My first try looked like:

$USER@$HOST ~ $ vagrant plugin install vagrant-libvirt
Installing the 'vagrant-libvirt' plugin. This can take a few minutes...
/usr/lib/ruby/1.9.1/rubygems/installer.rb:556:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
	from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
	from extconf.rb:5:in `
' Gem files will remain installed in /home/$USER/.vagrant.d/gems/gems/nokogiri-1.5.10 for inspection. Results logged to /home/$USER/.vagrant.d/gems/gems/nokogiri-1.5.10/ext/nokogiri/gem_make.out from /usr/lib/ruby/1.9.1/rubygems/installer.rb:534:in `block in build_extensions' from /usr/lib/ruby/1.9.1/rubygems/installer.rb:509:in `each' from /usr/lib/ruby/1.9.1/rubygems/installer.rb:509:in `build_extensions' from /usr/lib/ruby/1.9.1/rubygems/installer.rb:180:in `install' from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:297:in `block in install' from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each' from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each_with_index' from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `install' from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:38:in `block in call' from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:42:in `block in with_environment' from /usr/lib/ruby/1.9.1/rubygems/user_interaction.rb:40:in `use_ui' from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:41:in `with_environment' from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:28:in `call' from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call' from /usr/share/vagrant/plugins/commands/plugin/action/bundler_check.rb:20:in `call' from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call' from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in `call' from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:61:in `block in run' from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in `busy' from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:61:in `run' from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:17:in `action' from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:44:in `execute' from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:47:in `execute' from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:46:in `execute' from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:467:in `cli' from /usr/bin/vagrant:84:in `
'

Apparently ruby-devel is needed and as we don't run vagrant in rvm we can install it using the OS package manager.

sudo apt-get install ruby-dev

Retry the plugin installation:

$USER@$HOST ~ $ vagrant plugin install vagrant-libvirt
Installing the 'vagrant-libvirt' plugin. This can take a few minutes...
Installed the plugin 'vagrant-libvirt (0.0.13)'!

Testing the box using vagrant

We create a directory for the vagrant file and there we init a vagrant box based on box 'oel65_kvm'.

cd
mkdir oel65_kvm_vagrantbox
cd oel65_kvm_vagrantbox
vagrant init 'oel65_kvm'
vagrant up --provider=libvirt

At this time something goes wrong, vagrant seems to initialize just fine until:

$USER@$HOST ~/oel65_kvm_vagrantbox $ vagrant up --provider=libvirt
Bringing machine 'default' up with 'libvirt' provider...
[default] Creating image (snapshot of base box volume).
[default] Creating domain with the following settings...
[default]  -- Name:          oel65_kvm_vagrantbox_default
[default]  -- Domain type:   kvm
[default]  -- Cpus:          1
[default]  -- Memory:        512M
[default]  -- Base box:      oel65_kvm
[default]  -- Storage pool:  default
[default]  -- Image:         /var/lib/libvirt/images/oel65_kvm_vagrantbox_default.img
[default]  -- Volume Cache:  default
[default] Creating shared folders metadata...
[default] Starting domain.
[default] Waiting for domain to get an IP address...

But then it seems to be hanging. If you wait long enough the following will be added:

[default] Removing domain...
An error occurred while executing multiple actions in parallel.
Any errors that occurred are shown below.

An unexpected error ocurred when executing the action on the
'default' machine. Please report this as a bug:

The specified wait_for timeout (2 seconds) was exceeded

/home/$USER/.vagrant.d/gems/gems/fog-1.15.0/lib/fog/core/wait_for.rb:10:in `wait_for'
/home/$USER/.vagrant.d/gems/gems/fog-1.15.0/lib/fog/core/model.rb:64:in `wait_for'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/wait_till_up.rb:38:in `block (2 levels) in call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/util/retryable.rb:17:in `retryable'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/wait_till_up.rb:33:in `block in call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/util/timer.rb:9:in `time'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/wait_till_up.rb:31:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/start_domain.rb:26:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/builtin/set_hostname.rb:16:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/share_folders.rb:20:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/prepare_nfs_settings.rb:12:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/builtin/nfs.rb:30:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/create_network_interfaces.rb:96:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/create_networks.rb:83:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/builtin/provision.rb:54:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/create_domain.rb:62:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/create_domain_volume.rb:51:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/handle_box_image.rb:38:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/builtin/handle_box_url.rb:24:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/handle_storage_pool.rb:42:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/set_name_of_domain.rb:26:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/runner.rb:61:in `block in run'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/util/busy.rb:19:in `busy'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/runner.rb:61:in `run'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/builtin/call.rb:51:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/home/$USER/.vagrant.d/gems/gems/vagrant-libvirt-0.0.13/lib/vagrant-libvirt/action/connect_libvirt.rb:88:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/builder.rb:116:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/runner.rb:61:in `block in run'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/util/busy.rb:19:in `busy'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/runner.rb:61:in `run'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/machine.rb:147:in `action'
/opt/vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/batch_action.rb:63:in `block (2 levels) in run'

So it seems that the VM doesn't get a valid IP. Or at least Vagrant doesn't receive it. Since the VM is a kvm we can have a look to it using the vnc protocol. For this we will use virsh.

We need the domain to be running so if it was stopped already execute vagrant up again:

vagrant up --provider=libvirt

Open a new shell and using virsh look if a kvm is available:

$USER@$HOST ~ $ virsh list
 Id    Name                           State
----------------------------------------------------
 4     oel65_kvm_vagrantbox_default   running

A new kvm is available and it has the name we expected. It has Id 4 and is in state running. Now we need to have the vnc details to connect to it:

$USER@$HOST ~ $ virsh domdisplay 4
vnc://127.0.0.1:0

Here 4 is the Id of the domain we want to connect to. When you now launch vncviewer on this adres you will be connected to the VM:

$USER@$HOST ~ $ vncviewer 127.0.0.1:0

VNC Viewer Free Edition 4.1.1 for X - built Jan 14 2013 22:25:00
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.

Sat Dec 28 13:17:46 2013
 CConn:       connected to host 127.0.0.1 port 5900
 CConnection: Server supports RFB protocol version 3.8
 CConnection: Using RFB protocol version 3.8
 TXImage:     Using default colormap and visual, TrueColor, depth 24.
 CConn:       Using pixel format depth 6 (8bpp) rgb222
 CConn:       Using ZRLE encoding

A console windows will show and you can login (veewee/veewee). Once logged in you can look at /etc/udev/rules.d/70-persistent-net.rules. It will look like:


So udev finds an e1000 interface which is bound to eth0 but the interface is not available. So it will never come up. There is as well a interface which gets number eth1. But for eth1 there is no valid configuration present (/etc/sysconfig/network-scripts/ifcfg-eth1).

Change the file so only the entry for virtio-pci is still present. For that entry change NAME eth0 to eth1

# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:9b:86:96", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

The mac address here should correspond to the mac address mentioned in the kvm config when you execute:

virsh dumpxml 4

If you perform these steps the vagrant up command will continue and the total output will look like:

Bringing machine 'default' up with 'libvirt' provider...
[default] Creating image (snapshot of base box volume).
[default] Creating domain with the following settings...
[default]  -- Name:          oel65_kvm_vagrantbox_default
[default]  -- Domain type:   kvm
[default]  -- Cpus:          1
[default]  -- Memory:        512M
[default]  -- Base box:      oel65_kvm
[default]  -- Storage pool:  default
[default]  -- Image:         /var/lib/libvirt/images/oel65_kvm_vagrantbox_default.img
[default]  -- Volume Cache:  default
[default] Creating shared folders metadata...
[default] Starting domain.
[default] Waiting for domain to get an IP address...
[default] Waiting for SSH to become available...
[default] Rsyncing folder: /home/$USER/oel65_kvm_vagrantbox/ => /vagrant
[default] Configuring and enabling network interfaces...

Now you should be able to easily connect to the box using:

vagrant ssh

Saturday, August 24, 2013

Troubleshooting & Solving Linux disk space problems

In this blogpost I want to explain how you can troubleshoot diskspace problems.

Find out which files are using all the disk space.

Graphical desktop

When you have a graphical desktop at hand you should really consider installing Baobab (also known as disk usage analyzer for Ubuntu users). This application is rather straightforward.

You can click on 'Scan home' to verify the disk usage in your home directory. You can also click the button with the Harddisk symbol to start the analysis at your root directory. The graph on the right shows the usage per folder, this is handy to quickly identify greedy disk space consumers.

Command line

When you don't have a graphical desktop at hand, you must help yourself with the df and du commands.

df

The df tool will show you a table that reports the file system disk space usage. It takes a -h flag to write the output in human readable format. A table (constructed by df -h) looks like the following:

FilesystemSizeUsedAvailUse%Mounted
/dev/sda528G12G16G43%/
udev3.9G4.0K3.9G1%/dev
tmpfs1.6G1.1M1.6G1%/run
none5.0M05.0M0%/run/lock
none3.9G520K3.9G1%/run/shm
/dev/sda7193G135G48G74%/home
/dev/sda8121G120G1G99%/tmp

As you can see it is a handy tool to quickly see the state of your filesystems. A good first indication to see if problems are at hand.

The du tool will estimate the disk space usage. It takes 2 very handy flags which I cannot live without anymore.

  • -h -> Human readable
  • --max-depth=N -> Make a summary of directories up till the Nth level

The human readable flag will convert the numerical output from bytes (B) to more readable units like KB, MB, GB. This is the same behavior as with the df command.

Let's illustrated the du command with an example::

ow@D ~/Desktop $ du -h --max-depth=1 /tmp
du: cannot read directory `/tmp/vmware-root': Permission denied
4.0K /tmp/vmware-root
8.0K /tmp/pulse-O0P9w3N0W4t6
120G /tmp/img
8.0K /tmp/mintUpdate
du: cannot read directory `/tmp/cvcd': Permission denied
4.0K /tmp/cvcd
4.0K /tmp/ssh-fyPBrSQD2054
4.0K /tmp/orbit-peter
8.0K /tmp/sni-qt_skype_2251-QXMSXq
4.0K /tmp/.ICE-unix
4.0K /tmp/VMwareDnD
8.0K /tmp/matecorba-peter
4.0K /tmp/.X11-unix
4.0K /tmp/.com.google.Chrome.XybSSu
4.0K /tmp/hsperfdata_peter
4.0K /tmp/jna
4.0K /tmp/keyring-GJe9xq
du: cannot read directory `/tmp/pulse-PKdhtXMmr18n': Permission denied
4.0K /tmp/pulse-PKdhtXMmr18n
164K /tmp

This example shows some typical output lines.

Each line represents a directory and the first column shows the size of the content of the directory.

The last line is a summary line and shows the total size of the content of /tmp (or at least an estimate of it taking into account the files/directories that the user can read).

The lines ending with permission denied illustrated that the du tool couldn't descend in these directories. This is because the user that launched the du command didn't have the rights to descend into that directory.

This usage can be used to track down the big disk space consumers. I prefer to start examining the disk usage with max-depth=1 from the root directory and go down the directories to find the files that consume too much disk space. E.g. Using df I notice that my filesystem mounted at /tmp is reaching it's limit (it has only 121GB of disk space and it consumes more then 120GB). Therefore I launch the du command from above and I get the output from the example above. Then I know that the disk space is used inside /tmp/img so I could launch du --max-depth=1 -h /tmp/img to drill down further. These steps can be repeated until you find the consuming files.

Mismatch between du & df.

There can be a mismatch between the outputs of du and df. This is because df really shows the diskspace that is free and du calculates the disk usage based on the file attributes. It can however be that a file you have deleted isn't really gone yet and thus takes up space. Eventhough it isn't completely gone, it doesn't show up in the directory listing and thus du won't take it into account.

An example of a situation where such a mismatch might occur is when you have an application that logs to a file. When you delete the file it can be that the application still had a handle to the file. The file won't show up in the directory listing anymore but the filespace is not freed up until the file handle is released. If this was a log file from an application that has high availability restrictions, this can be problematic since you cannot shut it down whenever you want. It is possible to force Linux to give away the space but it involves actions with /proc. This is something I might post about on a later time.

Friday, February 8, 2013

Use Oracle Database Gateway for ODBC to query MSSQL Server from an Oracle Database.

Introduction

In this blogpost I will explain how you can setup Oracle Database Gateway for ODBC (=DG4ODBC) on a linux host to connect from an Oracle Database to a Microsoft SQL Server. To achieve this we will setup the unixODBC driver manager and use the freetds driver.

Overview of the solution.

The solution

Pre-requisites

Working databases

It is not the purpose of this blogpost to tell you how to install an Oracle or MS SQL Database. We will therefore only explain the setup of the DG4ODBC.

A (virtual) machine on which you can install DG4ODBC.

A (virtual) machine with a linux OS and a 64 bit architecture is required. I used an Oracle Linux 6.3 (64-bit) OS but any Red Hat (derivative) should suffice. The installation of the OS is rather basic. On the hard disk I only created 1 EXT4 partition and 1 swap partion. I chose 1 CPU with 2 cores and 2GiB of RAM.

Installed packages

I just did a server installation (no desktop environment). After the installation I installed the oracle-rdbms-server-11gR2-preinstall package (see https://blogs.oracle.com/linux/entry/oracle_rdbms_server_11gr2_pre for more information). This package is installed because I use this VM as a template to create test machines. It is not a requirement for the setup.

Actually if you want to install the package you can execute the yum statement below. Besides installing the packages the package also sets OS parameter to tune the OS for running a database.

yum install cloog-ppl compat-libcap1 compat-libstdc++-33 cpp gcc gcc-c++ glibc-devel glibc-headers
 kernel-uek-headers ksh libXmu libXxf86dga libXxf86misc libaio-devel libdmx libstdc++-devel mpfr ppl
 xorg-x11-utils xorg-x11-xauth glibc glibc-common

disable selinux

Just to be sure that selinux doesn't spoil the fun. I will disable it:

[root@gwexample ~]# cat /etc/sysconfig/selinux 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Step 1: Make it possible to connect to MS SQL server from Linux

Install the unixODBC Driver manager.

As unixODBC is provided in the public-yum repositories of Oracle we can make our life easy and install the software from the repo.

yum install unixODBC unixODBC-devel

Do not forget the devel package, it contains files like sql.h which are necessary to compile freetds with support for unixODBC!

Installation of freetds

Download freetds

Download the latest version of freetds. I downloaded the freetds-stable.tgz. We will copy this to /tmp/freetds-stable.tgz. Execute the following to extract it and move it to /home/oracle.

#As user oracle
cd /tmp
gunzip -c freetds-stable.tgz | tar -xvf -
mv freetds-0.91/ /home/oracle/

Configure and build freetds

Now we need to configure it:

#As user oracle
cd /home/oracle/freetds-0.91
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --with-unixodbc=/usr

If you get an error about missing sql.h. It is most likely because unixODBC is installed on a different location. Do a search for the file (either `locate sql.h` or if locate is not available `find / -name "sql.h"`). If the location is /aa/bbb/c/include/sql.h the configure argument should be --with-unixodbc=/aa/bbb/c . So for my setup it was /usr/include/sql.h

Next build the source

#as user oracle
make

And finally install it

#as root
make install

Configuring unixODBC driver manager

Setup the content of /etc/odbc.ini

[ODBC Data Sources]
#I do not think this line is really necessary but it does no harm :-)
MSSQLVM=FreeTDS
 
#The name between square brackets should correspond to the DB name of your SQL server.
#From now on it will be referred to as DSN !!
[MSSQLVM]
Driver = /usr/local/freetds/lib/libtdsodbc.so
#Do not use Driver = /usr/lib64/libodbc.so
#Location of the MS SQL Server (ip or hostname)
Server = 172.16.58.130
#Port where MS SQL Server is listening
Port = 1433
TDS_Version = 8.0
TraceFile = /tmp/odbc.trace
DEBUG = 1
Trace = Yes
dump file = /tmp/freetds.log

The following should be checked:

  • You should check if the file /usr/local/freetds/lib/libtdsodbc.so exists, because without it it won't work!
  • If you use a hostname to locate the server, make sure it is resolvable. Try to do `ping ` and see if you can reach the server. (If not try `ping ip` , if that doesn't work ICMP might be disabled). As I use a simple setup with VMs and no DNS server I use /etc/hosts file of linux to use the hostname.

Verify if freetds can be used via odbc

isql  -v   
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

For example isql -v MSSQLVM test Welcome1

Setup Oracle DB gateway for ODBC

Download software

The Oracle DB gateway for ODBC can be downloaded separately if you have got an Oracle Support Account. Instructions are available at https://updates.oracle.com/Orion/Services/download?type=readme&aru=14125322#CHDIHDIB . (you need to get Oracle Gateways)

Install software

Unzip the downloaded zip. And run the installer gateways/runInstaller


In splash screen click next.

We leave the default values for location and name.

No incompatibilities were found -> Next.

Select Oracle Database Gateway for ODBC 11.2.0.3.0 -> Next

Click the Install button to install the software.

Execute the 1 or 2 scripts mentioned in the dialog screen AS ROOT.

select Perform typical configuration and click Next.

An error might popup. Just click OK

The error has been noted. Click retry to try again.

If we do exactly the same will it work now?

Apparently yes :-).

Verify if the software works

#as user oracle
 export ORACLE_HOME=/home/oracle/product/11.2.0/tg_1
./dg4odbc

Oracle Corporation --- WEDNESDAY FEB 06 2013 21:02:11.918
Heterogeneous Agent Release 11.2.0.3.0 - 64bit Production Built with
Oracle Database Gateway for ODBC

Everytime you start dg4odbc make sure ORACLE_HOME is set!

Configure the listener

This must be done on the host ware DG4ODBC is installed. Because this listener will be your entry point to the MS SQL SERVER. Listener config file is situated at $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER=
   (SID_LIST=
      (SID_DESC =
         (SID_NAME = MSSQLVM)
         (ORACLE_HOME = /home/oracle/product/11.2.0/tg_1)
         (ENVS="LD_LIBRARY_PATH=/usr/lib64:/usr/local/freetds/lib:/home/oracle/product/11.2.0/tg_1/lib")
         (PROGRAM = dg4odbc)
       )
 
   )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
       (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = gwexample)(PORT = 1511)) 
       )
    )
  )
ADR_BASE_LISTENER = /home/oracle/product/11.2.0/tg_1

Important notes with listener config:

  • ENVS is not a typo, it should be ENVS
  • SID_NAME should correspond to DSN from /etc/odbc.ini
  • Each occurence of '/home/oracle/product/11.2.0/tg_1' should be replaced by the oracle home of dg4odbc but you cannot use the variable $ORACLE_HOME
  • HOST should be set to hostname or IP of the machine that hosts the dg4odbc. (if hostname is used it is best to have it in /etc/hosts of this machine)
  • PORT should be set to any free port
  • Firewall should be configured to allow connections to the PORT selected above -> do this now because you will forget about it!
  • ADR_BASE_LISTENER might not be necessary but I set it to the oracle home of dg4odbc and that does work

Configure tnsnames.ora

This file should be available at each machine that has an Oracle Database that wants to connect to the MS SQL server using the DG4ODBC. It is used to resolve the listener!

tnsnames config file is situated at $ORACLE_HOME/network/admin/tnsnames.ora

MSSQLVM =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=gwexample)(PORT=1511))
    (CONNECT_DATA=(SID=MSSQLVM))
    (HS=OK)
  )

Important notes with tnsnames.ora config

  • The name at the start is chosen to be the same as the DSN for convenience
  • The value for HOST does not have to be the ip/hostname of the DB server but must be the ip/hostname of the machine where dg4odbc is installed (this can be the same as the DB server)
  • The value after the SID must be the DSN
  • The line (HS=OK) must be present!

Configure dg4odbc

Configuration of this is done in $ORACLE_HOME/hs/admin/init.ora

# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = MSSQLVM
HS_FDS_TRACE_LEVEL = 255
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
HS_FDS_SUPPORT_STATISTICS = FALSE
HS_LANGUAGE=american_america.we8iso8859P1

#
# ODBC specific environment variables
#
set ODBCINI=/etc/odbc.ini

#
# Environment variables required for the non-Oracle system
#
#set =

Important notes with dg4odbc config

  • HS_FDS_CONNECT_INFO must be set equal to the DSN
  • HS_FDS_TRACE_LEVEL must be set to 0 after setup is working! It should only be set to 255 to do troubleshooting at the beginning.
  • HS_FDS_SHAREABLE_NAME should point to the ODBC library (i.e. the one of the ODBC driver manager)
  • HS_LANGUAGE should be set to american_america.we8iso8859P1

Reload the listener

This should be done for each change of listener.ora (on dg4odbc machine) and tnsnames.ora (on DB machine)

#as user oracle
#Make sure if ORACLE_HOME is set correctly and if DB SID
lsnrctl reload

Test if dg4odbc can be reached from the DB server

#as user oracle
#if not set, set oracle environment using . oraenv
[oracle@dbserver ~]$ tnsping MSSQLVM
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 05-FEB-2013 10:09:48
Copyright (c) 1997, 2011, Oracle.  All rights reserved.
Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=gwexample)(PORT=1511)) (CONNECT_DATA=(SID=MSSQLVM)) (HS=OK))
OK (0 msec)

Creat DB link

#in the Oracle DB execute:
create database link db_link connect to "test" identified by "Welcome1" using 'MSSQLVM';
SELECT * FROM dbo.table@db_link;

Important notes:

  • db_link is the name of the database link. It can be used after an @-sign
  • In the create database link statement BOTH the username and password should be surrounded by double quotes.
  • After using comes the DSN, surrounded by single quotes.

Troubleshooting

Handy files

  • /tmp/sql.log
  • $ORACLE_HOME/hs/log directory contains traces

Error messages + solution

Strange output -> language issue (we only speak americano)

sqlplus output

ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[

ORA-02063: preceding 2 lines from link_name

Sqldeveloper ouput

For Sqldeveloper is the output a bit clearer:

ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[ u n i x O D B C ) ( D r i v e r M a n a g e r ] D a t a s o u r c e n a m e ...

Strange output comes due to incorrect language settings. Please verify that HS_LANGUAGE=american_america.we8iso8859P1 is set in init.ora !!

Corrupt link

This time no error message is displayed at all.

ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
ORA-02063: preceding 2 lines from link_name
 (and ORA-28500) are caused by invalid 

If the listener is restarted with a new config your link in the database might have become invalid. Drop it and recreate it:

DROP DATABASE LINK db_link;
create database link db_link connect to "test" identified by "Welcome1" using 'MSSQLVM';

Nonexistent table or view

ORA-00942: table or view does not exist
[FreeTDS][SQL Server]Invalid object name 'your.table' . {42S02,NativeErr = 208}[FreeTDS][SQL Server]Statement(s) could not be 
ORA-02063: preceding 2 lines from link_name
00942. 00000 - "table or view does not exist"

This can happen if there are quotes surrounding the table name -> Remove surrounding quotes!

References

Some of the contents is based on http://gotodba.weebly.com/install-and-configure-db-link-to-sql-server-database-in-linux.html.

De freetds website http://freetds.schemamania.org/

https://forums.oracle.com/forums/thread.jspa?messageID=4351081 . Thank you kgronau for the answer on setting HS_LANGUAGE!