dinsdag 30 augustus 2016

My attempt to the AWS Solution Architect professional exam sample questions.

For this practice exam the correct answers are given on the Japanese version of the practice exam which can be found here.  The English practice exam is available from here.  And in this post I like to provide my reasoning in why the given answers are the correct ones.  I have done similarly for the DevOps professional exam here.

Question 1: Best RTO for on-premise Content Management System

 - Answer A will and is the best of the provided options because storage gateway is already used and it's volumes can be converted to EBS volumes.  RMAN backups in S3 also allow restoration into EC2
 - Answer B is not acceptable since Glacier storage takes recovery times >= 3 hours
 - Answer C: There is no need to attach a AWS Storage gateway to the EC2 instance, better to use an EBS volume
 - Answer D: AWS Storage Gateway-VTL is for tapes so no need here as you had a storage gateway volume

Question 2: ERP application in multiple AZs

 - Answer C is valid and allows to restore data up until 5 minutes from the issue (so RPO of 15 minutes is met).  Since you have hourly backups as well in S3 you can quickly restore these and you only need to replay transaction logs for max 1 hour. Furthermore S3 provides excellent data retention.
 - Answer A is not acceptable since Glacier recoveries take too much time > 3 hours
 - Answer B is not good for this scenario as it is unknown how the data corruption occurred.  Probably data corruption is introduced by a logical error rather than issues on storage level.  Since synchronous replication only makes sure you write the changes on a 2nd system as part of your transactions it doesn't allow to recover to earlier time to protect for these corruption errors.
 - Answer D is unacceptable because even though instance store volumes might allow to take quicker backups they are volatile and should not be relied upon for database backups (they are also only accessible from 1 instance and therefore data is only in 1 AZ)

Question 3: Random acts of kindness

 - Answer B is good as it is a cheap way that allows you to operate without maintaining infrastructure
 - Answer A is not good as IAM users should be internal users of your organizations.  You should not use these identities for 'web' users.  One reason would be because the amount of users would be limited.  Even if you would map them to a single 'application' user it would not be a good practice to do so.
 - Answer C is not good again because of IAM user usage as well as introducing additional unnecessary infrastructure (incurring costs)
 - Answer D introduces unneeded infrastructure incurring unneeded costs.

Question 4: Protecting SSL

 - Answer D is the best. CloudHSM is hardened to make sure SSL certificates cannot leave the device.  Furthermore its design and external certification certify that Amazon employees won't have access to them either.  Since Amazon employees also don't have access inside your EC2 instance it is good to store your logs on an ephemeral volume using a randomly generated AES key.  This means that you will lose your logs upon stop/start or when you experience a hardware failure but there were no retention requirements mentioned for the log files.  Since the volumes use this random key when mounting you grant your users access by granting them access to the instance.  The encryption makes sure that data is encrypted at rest and that physical access does not compromise your data.
 - Answer A is generally a good solution but since in this case security is the main concern it is not the best solution.  By offloading SSL at your Load balancing tier you have the traffic flowing in plain text from ELB to web servers.
 - Answer B is not good as there is no way of protecting your private key in the Amazon S3 bucket.  Since your instances need access to the S3 bucket to retrieve the key, employees could do the same and therefore compromise the key.
 - Answer C is good but it does not really protect your logs as you cannot write them straight into S3.  S3 is an object store and cannot be used reliably as a block device.

Question 5: Fat client application 

 - Answer D is the best.  Using the SSL VPN client the users can securely connect to the VPC and have access to the private subnets.  The fat client can then connect over the VPN tunnel to the application servers which are safely in the private subnet.
 - Answer A does not make sense, AWS Direct Connect is to allow a 'private' line from your data center into AWS and therefore does not come into play for this scenario
 - Answer B is not valid as you don't want to publish the application on the internet therefore an ELB by itself won't help
 - Answer C is not valid as you still place your application servers in the public subnet.  Having the IPsec VPN connection is meant to avoid this need.

Question 6: Legacy engineering application migration

 - Answer B is indeed the way to go an initial sync followed by incremental syncs to make sure you get all the data in the latest state within the time frame.  If needed you could perform multiple incremental syncs (note that these would incur additional cost as you would be consuming more bandwidth)
 - Answer A is not valid as it does not provide a solution to time needed to transfer the 900 GB of data
 - Answer C is not valid as AWS Import/Export is not to migrate data within 48 hours
 - Answer D is not valid because it says to copy the data on Friday which again does not provide enough time to transfer all the data.

My attempt to the AWS DevOps Engineer professional exam sample questions.

This is just a blogpost to try out the sample questions of the AWS Devops Engineer professional exam.  So keep in mind that these are by no means official answers they are just my attempt to solving the example questions.  I did a similar attempt for the Solutions Architect professional exam.

Question 1 automated data backup solution:

  - Answer C: ec2-create-snapshot API results in a snapshot from your EBS volume which is stored in S3 (=distributed data store without single point of failure).  Use the tags to manage metadata and be able to cleanup old snapshots to limit costs.
 -  Answer A is not valid because ec2-create-volume creates an empty volume or one initiated from a snapshot.  Even if copy backup data means to this volume than it would be sub optimal as you will have worse retention compared to answer C and you will have higher costs (every volume you create will take up full space whereas S3 snapshot will be incremental)
- Answer B is not valid because recovering your data from Glacier won't be possible within 1 hour
- Answer D is not valid because ec2-copy-snapshot can only operate on snapshots not on EBS volumes

Question 2: Going from M3 instances to C3 instances when using CloudFormation and AutoScaling Groups

 - Answer D is correct:
 -  Answer A is not sufficient as the Auto Scaling group won't automatically replace your existing instances.
  - Answer B & C are not valid since you cannot update a launch configuration.  As stated in the documentation.

Question 3:  CloudFormation for complex systems 

 - Answer B is my preferred answer as multiple separate templates are easier to maintain and allow re-use.
 - Answer A is not good because maintaining a single template does not scale (it won't allow re-use)
 - Answer C is not good as orchestrating the process from an EC2 instance introduces a single point of failure.  It is also not cost efficient as it will require additional work to implement and a running instance.
 - Answer D is not good because you wanted to version-control your infrastructure which encompasses networking and thus VPC

Question 4: Automated deployment - reduce launch time

- Answer B is correct as it fulfills the requirements
- Answer A is incorrect because of the timing requirements it would take more than 3 minutes given the timings of the operations
- Answer C is incorrect because of timing (artifacts 4 min + deploy app code 1 min) > 3 min
- Answer D is incorrect because you still need to perform all the steps and thus require > 3 minutes, also the polling is not needed as User Data can be used to initialize the EC2

Question 5: I/O load performance test

 - Answer B is correct.  This operation is needed to avoid the first touch penalty and to make sure you check the performance of a warm Volume (at least if the volume is restored from snapshot, nowadays you don't need to prewarm new empty volumes).
- Answer A is incorrect because you would use the block size which is applicable for your application and won't change it upon deployment
- Answer C is incorrect as you just use the volumes to test so no need to back them up, having a backup also does not influence performance
- Answer D is incorrect as encrypted volumes won't boost performance
- Answer E is incorrect as creating a snapshot does not read every block in the volume but only touches the blocks that have data (or changed data if the volume itself was created from a snapshot)

Question 6: social media marketing application

- Answer B is a possible way to do this.  DynamoDB is a persistent store that stores data in multiple AZs.
- Answer A is not correct because Kinesis is for streaming data, it won't allow you to keep historical data as it only can keep data records for 1-7 days.
- Answer C is not correct because Glacier is for archiving data that you rarely want to retrieve.  Also if you want to publish your data into Redshift using DataPipeline you need to have your data in a source that can be used by Redshift (e.g regular S3 (not Glacier!), DynamoDB, EC2 (via SSH), EMR (via SSH) )
- Answer D is not correct because Amazon CloudWatch is not for analytics.  Also Cloudwatch only retains data for 14 days.

Question 7: bill increase

- Answer C is correct: wording is a bit weird as it looks sub optimal to send an SNS to your application which would then query DynamoDB.  It is good to have the data in Dynamo DB to have it there persistently but it would be more efficient to have a lambda function putting the data into Dynamo DB and that this lambda function also updates the cache with the new entry such that at this time DynamoDB does not need to be queried.
- Answer A is incorrect because S3 bucket life cycles are to change storage type of an object it does not allow you to push a list of objects to another bucket
- Answer B would be feasible but only if you have a very controlled process over the uploads that can be done in your bucket it is not as practical as C.
- Answer D is incorrect because there is no such thing as SQS lifecycles that move objects into S3
- Answer E is incorrect because ElastiCache is a key-value cache service which does not allow you to push files into Amazon S3

Question 8: AWS Elastic Beanstalk + continuous deployment (zero downtime)

- Answer B is correct because the swap of DNS name allows you to rollback almost immediately (ignoring clients that don't implement DNS and TTLs correctly)
- Answer A is incorrect because depending on the deploy time rollback won't be almost immediately
- Answer C is incorrect doesn't have a rollback scenario
- Answer D is incorrect because I don't think you can configure a beanstalk environment to send HTTP 301 response codes.  Also because 301 HTTP response code is a permanent redirect and therefore will cause clients to cache this redirect so rollback will still keep impacted clients on the new environment

Question 9: Log analysis application

- Answer A seems possible as CoudWatch Logs can filter your logs and keep track of login actions
- Answer B is incorrect as it won't be real time
- Answer C is incorrect because it has no auto-scaling
- Answer D is incorrect as it won't be real time
- Answer E is incorrect as you cannot use map reduce job on data that is in your RDS MySQL.  You would need to export the data which won't be real time either

Question 10: orders processing

- Answer B is correct because it will automatically replace an instance if it is stopped/terminated or fails (HW failure).
- Answer E is correct because it allows to detect that the application is no longer running correctly and will stop the instance automatically.
- Answer A is incorrect as a 2nd watchdog instance costs money
- Answer C is incorrect as no need for scaling was expressed and having a minimum of 2 already makes it more expensive
- Answer D is incorrect as you need to pay for the ELB so it is not the most cost-effective way

donderdag 27 augustus 2015

Setup Linux Mint 17.2 on Dell XPS 15 (2015 edition)

This blog post will describe a possible setup for Linux Mint 17.2 on a Dell XPS 15 (built year 2015 with 4K Ultra-HD touch screen). It will focus on the pre-installation steps (how to boot your Linux Live USB) and post-installation steps (fixing driver issues). It is expected that the reader already knows how to perform a Linux install.

Installation of Linux on a Dell XPS 15

Download Linux Mint 17.2 Cinnamon and create a bootable USB.

Disable fast boot from Windows

Boot into Windows and disable fast boot (Instructions at http://www.eightforums.com/tutorials/6320-fast-startup-turn-off-windows-8-a.html)

Disable Secure boot and change boot order

Go into the Bios (Reboot notebook and press F2 on splash screen (bios keys are mentioned in bottom right corner). After this your BIOS screens should look like:





Boot from the USB into Linux. Once there use gparted (if needed install using `sudo apt-get install gparted` to resize the Windows partitions and to free up space for your Linux installation. Next perform the Linux installation to your preference (for me that means a separate partition for /home).

Driver issues + fixes

Wi-Fi

This is one is available in the restricted drivers area of Mint. Before launching it however it is best to get your repository data up-to-date and to install all updates:

sudo apt-get update && sudo apt-get upgrade 

Next go to the restricted drivers wizard using the menu:


In this window only consider the area on the wireless drivers (broadcom drivers):

Select bcmwl-kernel-source and click apply changes, this should do all the necessary configuration to get Wi-Fi working.  Next you can connect to a wireless network using network manager.

How to get internet-access on this notebook without Wi-Fi?

I have bought the 4-in-1 connector for the PC that will go from USB3.0 to USB2.0, ethernet, VGA & HDMI ports. For the USB and the ethernet ports this adapter is plug&play. So handy when you need to install updates when your wireless is not yet working.

Nvidia

Bumblebee Installation instructions

Using instructions from https://wiki.ubuntu.com/Bumblebee

sudo apt-get update
sudo apt-get upgrade
sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic

Which gives the following output:

Dellx log # sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  bbswitch-dkms lib32gcc1 libc6-i386 linux-headers-3.13.0-62
  linux-headers-3.13.0-62-generic nvidia-304 nvidia-current primus-libs socat
Recommended packages:
  nvidia-settings libcuda1-304 nvidia-opencl-icd-304 primus-libs-ia32
The following packages will be REMOVED:
  linux-kernel-generic
The following NEW packages will be installed:
  bbswitch-dkms bumblebee bumblebee-nvidia lib32gcc1 libc6-i386
  linux-headers-3.13.0-62 linux-headers-3.13.0-62-generic
  linux-headers-generic nvidia-304 nvidia-current primus primus-libs socat
0 upgraded, 13 newly installed, 1 to remove and 0 not upgraded.
Need to get 47,8 MB of archives.
After this operation, 260 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

Install newest nvidia drivers

These are present in the driver manager.


Select the latest driver


Click apply and afterwards it should show that an additional proprietary driver is in use.


Configure Bumblebee to use these new drivers

Changes the following four lines using your favorite editor in /etc/bumblebee/bumblebee.conf (using sudo, e.g. sudo gedit /etc/bumblebee/bumblebee.conf):

Driver=nvidia
KernelDriver=nvidia
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-346-updates:/usr/lib32/nvidia-346-updates
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-346-updates/xorg,/usr/lib/xorg/modules

Note that paths are once colon-separated and once comma-separated.

After a reboot the bumblebee daemon should be running.
peter@Dellx ~ $ /etc/init.d/bumblebeed status
 * bumblebeed is running

Why would I install these proprietary drivers?

You don't need to install them but they can boost performance our lower your power consumption:

Performance

3D Performance before setup
peter@Dellx ~ $ glxgears 
Xlib:  extension "NV-GLX" missing on display ":0".
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
348 frames in 5.3 seconds = 65.786 FPS
300 frames in 5.0 seconds = 59.997 FPS
300 frames in 5.0 seconds = 59.995 FPS
300 frames in 5.0 seconds = 59.996 FPS
3D performance after setup
peter@Dellx ~ $ glxgears 
30157 frames in 5.0 seconds = 6031.306 FPS
31302 frames in 5.0 seconds = 6260.384 FPS
32086 frames in 5.0 seconds = 6415.288 FPS
30959 frames in 5.0 seconds = 6191.375 FPS

Battery saving mode

This performance gain comes however with a penalty for the autonomy of your notebook (higher battery drain). In your panel with status and notification icons an Icon should be present that either holds the nvidia logo or the intel logo:



When you click the logo you will get the Nvidia configuration screen that allows you to switch between the modes.



When selecting a mode you'll need to provide a password because privileges are required (only possible if your user is allowed to perform privileged actions (sudo rights)).



In order to activate the changes you need to re-login.



After a re-login you'll see the intel logo.


To investigate

  • How to get the 4-in-1 adapter working for external displays.  Low priority as I currently don't have a secondary display.
  • Quite frequently text gets pasted while typing or mouse jumps.  This is likely caused by the touchpad which is quite broad and easily touched by accident.  Currently I don't have an external mouse but will likely look into buying one in the near future and will then check howto best disable the touchpad when mouse is connected and re-activate it when mouse is disconnected.  (e.g. using udev)
  • In syslog CPU stacktraces show up from time to time
  • Touchscreen: This seems to be a weak point for Linux.  The 'chromium-browser' however seems to do support gestures like pinching and two-finger scrolling.  Can be handy for Google Maps although I dislike greasy fingers on my screen.

zaterdag 2 augustus 2014

"to modify zones, delete program in service" on polar watch

In this post I'll explain how to setup your heart rate zones manually on a polar watch when you get the message "to modify zones, delete program in service". I have the polar rcx3 but probably for other polar watches the same logic will apply.

Personal introduction (can be skipped without a problem)

A few months ago I started running and to track my progress I want to monitor my heart rate. For this I bought the Polar RCX3 run watch which comes with heart rate monitor and stride sensor s3+. I wanted to configure my heart rate zones manually as I had a physical examination from a physician who determined my training zones. Since he also provided a training program based on my heart rate zones it seems most appropriate to use the zones that are mentioned in his program. The zones that were proposed by the watch are not completely different but there are some differences. When I wanted to change the heart rate I received the vague error message: "to modify zones, delete program in service". As it took a while to find the problem I'll put it here for other people their convenience.

Setting heart rate zones manually on polar rcx3

This can be done easily by going to.

 Settings -> Heart rate settings -> Sport zones 

There you can select any of the 5 zones and select its limits. In some cases however you can have an error. I have seen the following errors:

'To modify zones, first set ZoneOptimizer off'

This is a clear error message and can be easily solved. Just disable the Heart rate Zone optimizer of your polar watch. This can be done in the following menu entry:

 Settings -> Heart rate settings -> ZoneOptimizer 

Set it to 'OFF' and retry setting your heart rate zones manually.

'To modify zones, delete program in service'

This however is a rather cryptic error message imho. Google is your friend but this time I only found the advise to reset the watch by pressing all the buttons simultaneously for 2 seconds. Don't do this as it will just reset your watch settings but won't fix the problem! This error is shown because you cannot change your heart rate zones as long as you have training programs from www.polarpersonaltrainer.com on your watch. As I already uploaded some training plans to my watch my heart rate zones were blocked. I guess the training program calculates heartrate zones based on your maximal heart rate and than locks the heart rate zones so that changing them doesn't modify the training program completely.

Unfortunately this means that the only solution I know is to go to www.polarpersonaltrainer.com, delete your trainingsprogram and then sync with your watch. Then you can again try to set your heart rate zones manually.

Personal Conclusion/remark

It is not to hard to set your manual heart rate zones as long as you know to remove training programs but it is a pitty that they need to be removed. I guess it is necessary due to to the implementation of heart rate zone programs but it is a pity. Since I only wanted to start the program from polarpersonaltrainer in a few months I'll first continue with my tailored training programs and then I might switch back to the calculated heart rate zones.

zondag 5 januari 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 (I don't track your reading).

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