From eed15533b6550973262caa78e91d8f6e6a3bfb4d Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 8 Jul 2013 11:51:01 +0100 Subject: [PATCH] Add 2013 CentOS Dojo Aldershot talk. --- 2013-centos-dojo/.gitignore | 2 + 2013-centos-dojo/0000-introduction.html | 21 +++ 2013-centos-dojo/0500-definitions-libvirt.html | 11 ++ 2013-centos-dojo/0501-definitions-cloud.html | 11 ++ 2013-centos-dojo/0502-definitions-disk-image.html | 10 ++ 2013-centos-dojo/1000-laptop-guests.term | 12 ++ 2013-centos-dojo/1000.d/.gitignore | 0 2013-centos-dojo/2000-overlay-disk.html | 7 + 2013-centos-dojo/2000-overlay-disk.svg | 171 ++++++++++++++++++++++ 2013-centos-dojo/2100-overlay-disk.term | 17 +++ 2013-centos-dojo/2100.d/.gitignore | 0 2013-centos-dojo/2200-differences.term | 13 ++ 2013-centos-dojo/2200.d/.gitignore | 2 + 2013-centos-dojo/2300-sysprep.term | 11 ++ 2013-centos-dojo/2300.d/.gitignore | 0 2013-centos-dojo/2400-set-root-password.term | 15 ++ 2013-centos-dojo/2400.d/set-root-password.pl | 27 ++++ 2013-centos-dojo/6000-libvirt.html | 16 ++ 2013-centos-dojo/7000-libguestfs.html | 27 ++++ 2013-centos-dojo/8000-openstack.html | 13 ++ 2013-centos-dojo/9000-ovirt.html | 14 ++ 2013-centos-dojo/9900-qanda.html | 44 ++++++ 2013-centos-dojo/README | 12 ++ 2013-centos-dojo/bashrc | 17 +++ 2013-centos-dojo/centos-bg.png | Bin 0 -> 19245 bytes 2013-centos-dojo/centos-logo.png | Bin 0 -> 9656 bytes 2013-centos-dojo/cleanup | 6 + 2013-centos-dojo/code.js | 0 2013-centos-dojo/functions | 40 +++++ 2013-centos-dojo/highlight | 2 + 2013-centos-dojo/notes.txt | 82 +++++++++++ 2013-centos-dojo/redhat.png | Bin 0 -> 4763 bytes 2013-centos-dojo/run | 23 +++ 2013-centos-dojo/style.css | 97 ++++++++++++ 34 files changed, 723 insertions(+) create mode 100644 2013-centos-dojo/.gitignore create mode 100644 2013-centos-dojo/0000-introduction.html create mode 100644 2013-centos-dojo/0500-definitions-libvirt.html create mode 100644 2013-centos-dojo/0501-definitions-cloud.html create mode 100644 2013-centos-dojo/0502-definitions-disk-image.html create mode 100755 2013-centos-dojo/1000-laptop-guests.term create mode 100644 2013-centos-dojo/1000.d/.gitignore create mode 100644 2013-centos-dojo/2000-overlay-disk.html create mode 100644 2013-centos-dojo/2000-overlay-disk.svg create mode 100755 2013-centos-dojo/2100-overlay-disk.term create mode 100644 2013-centos-dojo/2100.d/.gitignore create mode 100755 2013-centos-dojo/2200-differences.term create mode 100644 2013-centos-dojo/2200.d/.gitignore create mode 100755 2013-centos-dojo/2300-sysprep.term create mode 100644 2013-centos-dojo/2300.d/.gitignore create mode 100755 2013-centos-dojo/2400-set-root-password.term create mode 100755 2013-centos-dojo/2400.d/set-root-password.pl create mode 100644 2013-centos-dojo/6000-libvirt.html create mode 100644 2013-centos-dojo/7000-libguestfs.html create mode 100644 2013-centos-dojo/8000-openstack.html create mode 100644 2013-centos-dojo/9000-ovirt.html create mode 100644 2013-centos-dojo/9900-qanda.html create mode 100644 2013-centos-dojo/README create mode 100644 2013-centos-dojo/bashrc create mode 100644 2013-centos-dojo/centos-bg.png create mode 100644 2013-centos-dojo/centos-logo.png create mode 100755 2013-centos-dojo/cleanup create mode 100644 2013-centos-dojo/code.js create mode 100644 2013-centos-dojo/functions create mode 100755 2013-centos-dojo/highlight create mode 100644 2013-centos-dojo/notes.txt create mode 100644 2013-centos-dojo/redhat.png create mode 100755 2013-centos-dojo/run create mode 100644 2013-centos-dojo/style.css diff --git a/2013-centos-dojo/.gitignore b/2013-centos-dojo/.gitignore new file mode 100644 index 0000000..ceb0adb --- /dev/null +++ b/2013-centos-dojo/.gitignore @@ -0,0 +1,2 @@ +bindings +history diff --git a/2013-centos-dojo/0000-introduction.html b/2013-centos-dojo/0000-introduction.html new file mode 100644 index 0000000..dd27dcb --- /dev/null +++ b/2013-centos-dojo/0000-introduction.html @@ -0,0 +1,21 @@ + + + +
+

+ Programming libvirt & the virt tools
+

+

+ Richard W.M. Jones
+ rjones @ redhat.com +

+

+ After the short talk, we have 20 minutes for Q&A.
+ Ask me anything about:
+ virtualization with KVM in CentOS,
+ libvirt, libguestfs, virt-* tools, virsh,
+ OpenStack, oVirt, RHEV-M, RHEL 7 … +

+
+ + diff --git a/2013-centos-dojo/0500-definitions-libvirt.html b/2013-centos-dojo/0500-definitions-libvirt.html new file mode 100644 index 0000000..48592d3 --- /dev/null +++ b/2013-centos-dojo/0500-definitions-libvirt.html @@ -0,0 +1,11 @@ + + + + +

Some definitions

+ + diff --git a/2013-centos-dojo/0501-definitions-cloud.html b/2013-centos-dojo/0501-definitions-cloud.html new file mode 100644 index 0000000..2ceaec5 --- /dev/null +++ b/2013-centos-dojo/0501-definitions-cloud.html @@ -0,0 +1,11 @@ + + + + +

Some definitions

+ + diff --git a/2013-centos-dojo/0502-definitions-disk-image.html b/2013-centos-dojo/0502-definitions-disk-image.html new file mode 100644 index 0000000..a08b319 --- /dev/null +++ b/2013-centos-dojo/0502-definitions-disk-image.html @@ -0,0 +1,10 @@ + + + + +

Some definitions

+ + diff --git a/2013-centos-dojo/1000-laptop-guests.term b/2013-centos-dojo/1000-laptop-guests.term new file mode 100755 index 0000000..523b5b5 --- /dev/null +++ b/2013-centos-dojo/1000-laptop-guests.term @@ -0,0 +1,12 @@ +#!/bin/bash - + +source functions + +# History. +remember 'sudo virsh list --all' +remember 'sudo virsh dumpxml f18x64 | highlight | less -r' + +echo "Locally installed guests" + +cd 1000.d +terminal diff --git a/2013-centos-dojo/1000.d/.gitignore b/2013-centos-dojo/1000.d/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/2013-centos-dojo/2000-overlay-disk.html b/2013-centos-dojo/2000-overlay-disk.html new file mode 100644 index 0000000..cecc8b0 --- /dev/null +++ b/2013-centos-dojo/2000-overlay-disk.html @@ -0,0 +1,7 @@ + + + + +

Creating an overlay disk

+ + diff --git a/2013-centos-dojo/2000-overlay-disk.svg b/2013-centos-dojo/2000-overlay-disk.svg new file mode 100644 index 0000000..5ae09b5 --- /dev/null +++ b/2013-centos-dojo/2000-overlay-disk.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + 20 GBrawbacking diskreadonly + + 20 GBqcow2overlay + + + + hypervisor(KVM) + + diff --git a/2013-centos-dojo/2100-overlay-disk.term b/2013-centos-dojo/2100-overlay-disk.term new file mode 100755 index 0000000..af83345 --- /dev/null +++ b/2013-centos-dojo/2100-overlay-disk.term @@ -0,0 +1,17 @@ +#!/bin/bash - + +source functions + +# History. +remember 'qemu-img create -f qcow2 -b /dev/fedora/f18x64 /tmp/overlay.qcow2' +remember 'qemu-img info /tmp/overlay.qcow2' +remember 'virt-install --import --disk path=/tmp/overlay.qcow2,bus=virtio,format=qcow2 -n dojo -r 2048' +remember 'virt-viewer dojo' +remember 'virsh list' +remember 'virsh dumpxml dojo | highlight | less -r' +remember 'qemu-img info /tmp/overlay.qcow2' + +echo "Set up an overlay disk" + +cd 2100.d +terminal diff --git a/2013-centos-dojo/2100.d/.gitignore b/2013-centos-dojo/2100.d/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/2013-centos-dojo/2200-differences.term b/2013-centos-dojo/2200-differences.term new file mode 100755 index 0000000..1ff2f9f --- /dev/null +++ b/2013-centos-dojo/2200-differences.term @@ -0,0 +1,13 @@ +#!/bin/bash - + +source functions + +# History. +remember 'virt-ls -lR /dev/fedora/f18x64 / | sort -k4 > old-files' +remember 'virt-ls -lR /tmp/overlay.qcow2 / | sort -k4 > new-files' +remember 'diff -ur old-files new-files | less' + +echo "Differences" + +cd 2200.d +terminal diff --git a/2013-centos-dojo/2200.d/.gitignore b/2013-centos-dojo/2200.d/.gitignore new file mode 100644 index 0000000..9ff65df --- /dev/null +++ b/2013-centos-dojo/2200.d/.gitignore @@ -0,0 +1,2 @@ +new-files +old-files diff --git a/2013-centos-dojo/2300-sysprep.term b/2013-centos-dojo/2300-sysprep.term new file mode 100755 index 0000000..a72929a --- /dev/null +++ b/2013-centos-dojo/2300-sysprep.term @@ -0,0 +1,11 @@ +#!/bin/bash - + +source functions + +# History. +remember 'virt-sysprep --hostname dojo.example.com -d dojo' + +echo "Sysprep the guest" + +cd 2300.d +terminal diff --git a/2013-centos-dojo/2300.d/.gitignore b/2013-centos-dojo/2300.d/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/2013-centos-dojo/2400-set-root-password.term b/2013-centos-dojo/2400-set-root-password.term new file mode 100755 index 0000000..270d9a8 --- /dev/null +++ b/2013-centos-dojo/2400-set-root-password.term @@ -0,0 +1,15 @@ +#!/bin/bash - + +source functions + +# History. +remember 'ls -l' +remember 'emacs -nw set-root-password.pl' +remember './set-root-password.pl' +remember 'virsh start dojo' +remember 'virt-viewer dojo' + +echo "Set root password" + +cd 2400.d +terminal diff --git a/2013-centos-dojo/2400.d/set-root-password.pl b/2013-centos-dojo/2400.d/set-root-password.pl new file mode 100755 index 0000000..6511cfb --- /dev/null +++ b/2013-centos-dojo/2400.d/set-root-password.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl -w + +use strict; +#use Sys::Virt; +use Sys::Guestfs; + +my $vm = "dojo"; +my $newpw = "1234567"; + +my $salt; +my @chars = ("A".."Z", "a".."z", "0".."9", ".", "/"); +$salt .= $chars[rand @chars] for 1..16; +my $crypted = crypt ($newpw, '$5$' . $salt . '$'); + +my $g = Sys::Guestfs->new (); +$g->set_trace (1); +$g->add_domain ($vm, libvirturi => "qemu:///session"); +$g->launch (); +$g->mount ("/dev/fedora/root", "/"); + +my @shadow = $g->read_lines ("/etc/shadow"); +s/^root:.*?:/root:$crypted:/ foreach @shadow; + +$g->write ("/etc/shadow", join ("\n", @shadow) . "\n"); +$g->chmod (0, "/etc/shadow"); + +$g->touch ("/.autorelabel"); diff --git a/2013-centos-dojo/6000-libvirt.html b/2013-centos-dojo/6000-libvirt.html new file mode 100644 index 0000000..6357886 --- /dev/null +++ b/2013-centos-dojo/6000-libvirt.html @@ -0,0 +1,16 @@ + + + + +

Some things you can do with libvirt ...

+ + diff --git a/2013-centos-dojo/7000-libguestfs.html b/2013-centos-dojo/7000-libguestfs.html new file mode 100644 index 0000000..22be535 --- /dev/null +++ b/2013-centos-dojo/7000-libguestfs.html @@ -0,0 +1,27 @@ + + + + +

Some things you can do with libguestfs ...

+ +
+ +
diff --git a/2013-centos-dojo/8000-openstack.html b/2013-centos-dojo/8000-openstack.html new file mode 100644 index 0000000..f7dab04 --- /dev/null +++ b/2013-centos-dojo/8000-openstack.html @@ -0,0 +1,13 @@ + + + + +

Some things you can do with OpenStack ...

+ + diff --git a/2013-centos-dojo/9000-ovirt.html b/2013-centos-dojo/9000-ovirt.html new file mode 100644 index 0000000..09abaee --- /dev/null +++ b/2013-centos-dojo/9000-ovirt.html @@ -0,0 +1,14 @@ + + + + +

Some things you can do with oVirt ...

+ + diff --git a/2013-centos-dojo/9900-qanda.html b/2013-centos-dojo/9900-qanda.html new file mode 100644 index 0000000..e5f1da5 --- /dev/null +++ b/2013-centos-dojo/9900-qanda.html @@ -0,0 +1,44 @@ + + + + +

Q & A

+ + + + + + +
+ + +

+Presentation software: Tech Talk PSE +

+

+Download the presentation and/or the presentation software from +git.annexia.org +

+ +
+

+Ask me anything about: +

+
    +
  • virtualization with KVM in CentOS +
  • libvirt +
  • libguestfs +
  • virt-* tools +
  • virsh +
  • OpenStack +
  • oVirt/RHEV-M +
  • RHEL 7 +
  • … +
+
diff --git a/2013-centos-dojo/README b/2013-centos-dojo/README new file mode 100644 index 0000000..b2f6332 --- /dev/null +++ b/2013-centos-dojo/README @@ -0,0 +1,12 @@ +This is a general libvirt/virtualization/libguestfs talk given at the +2013 CentOS Dojo in Aldershot. + +http://wiki.centos.org/Events/Dojo/Aldershot2013 + +The whole talk is designed to take around 15-20 minutes, with an open +Q&A about virtualization at the end lasting another 20 minutes. + +To run the talk you'll need Tech Talk PSE >= 1.1.0. If you don't have +Tech Talk then just open up the HTML slides in a web browser. + +To start the talk, use `./run'. diff --git a/2013-centos-dojo/bashrc b/2013-centos-dojo/bashrc new file mode 100644 index 0000000..4c6a3c6 --- /dev/null +++ b/2013-centos-dojo/bashrc @@ -0,0 +1,17 @@ +# -*- shell-script -*- + +# Colour ls. +if [ -f /etc/profile.d/colorls.sh ]; then . /etc/profile.d/colorls.sh; fi + +# Fancy prompt colours (see +# https://wiki.archlinux.org/index.php/Color_Bash_Prompt) +promptcol='\e[0;32m' ;# colour for the prompt +commandcol='\e[1;31m' ;# colour for the typed command +outputcol='\e[0m' ;# colour for command output + +export PS1="\n\[$promptcol\]\$ \[$commandcol\]" + +trap 'echo -ne "$outputcol"' DEBUG + +# Load key bindings (if any). +bind -f $talkdir/bindings diff --git a/2013-centos-dojo/centos-bg.png b/2013-centos-dojo/centos-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..afee2f1889f2cae6e09452bc45c249b69e085df3 GIT binary patch literal 19245 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 literal 0 HcmV?d00001 diff --git a/2013-centos-dojo/centos-logo.png b/2013-centos-dojo/centos-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..90b0b11a3d4a5f2a15bd7b892f323ac09e07aeaa GIT binary patch literal 9656 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 +# +# This function does two things: (1) It adds the command and arguments +# to the shell history, so that commands can be recalled using up +# arrow or reverse search. (2) It makes a function key recall the +# command. The first command is assigned to F2, the second to F3 and +# so forth. + +rm -f $HISTFILE +touch $HISTFILE +rm -f $talkdir/bindings +touch bindings + +fnum=2 +keys=(- OP OQ OR OS '[15~' '[17~' '[18~' '[19~' '[20~' '[21~') + +remember () +{ + echo "$@" >> $HISTFILE + echo \"\\e${keys[$fnum]}\":\"\\C-k \\C-u"$@"\" >> $talkdir/bindings + ((fnum++)) +} + +terminal () +{ + chmod -w $HISTFILE + /bin/bash --rcfile $talkdir/bashrc "$@" +} diff --git a/2013-centos-dojo/highlight b/2013-centos-dojo/highlight new file mode 100755 index 0000000..e36a1ec --- /dev/null +++ b/2013-centos-dojo/highlight @@ -0,0 +1,2 @@ +#!/bin/sh - +source-highlight -s xml -o STDOUT -f esc diff --git a/2013-centos-dojo/notes.txt b/2013-centos-dojo/notes.txt new file mode 100644 index 0000000..d2d4163 --- /dev/null +++ b/2013-centos-dojo/notes.txt @@ -0,0 +1,82 @@ +*** BEFORE THE TALK *** + +./cleanup +./run + +*** 1000 guests installed on my laptop for testing *** + +virsh list .. showing guests + +virsh dumpxml ... showing individual guests + +XML vs the world? + +*** 2000 create an overlay disk *** + +Because I don't want to change my test guests ... + +Create overlay disk + diagram + + qemu-img create -f qcow2 -b /dev/fedora/f18x64 /tmp/f18.qcow2 + qemu-img info /tmp/f18.qcow2 + virt-install --import --disk path=/tmp/f18.qcow2,bus=virtio,format=qcow2 -n temp -r 2048 + virt-viewer --connect qemu:///session temp + virsh list + virsh dumpxml temp + +Run 'shutdown' inside the guest. + + qemu-img info /tmp/f18.qcow2 +# virsh undefine temp + +*** 2200 differences between backing and overlay disk *** + + differences between guests + +*** 2300 sysprep overlay disk *** + + sysprep it + +*** 2400 set root password *** + + set root password using some perl + +*** 6000 Mention some other things we can do with libvirt ... *** + +*** 7000 with libguestfs ... *** + +*** 8000 with Open Stack ... *** + + mostly equivalent in features to Amazon EC2 + +*** 9000 with oVirt ... *** + + comparable to Virtual Center + +*** 9900 Q&A *** + +--- If there are no immediate questions, then: + +* How many people are using virtualization at all? + +* How many people have virtualized some of their servers? + +* How many people are using Amazon EC2 or another public cloud? + +* How many people are running a public VPS or public cloud? + +* How many people are running a private cloud or cloud-like service + within their company? + +* How many people are running VMware? + +* How many people are running Xen? + +* How many people are running KVM? + +* What would stop you from moving away from VMware? + +* What would stop you from moving to libvirt? + +* What would stop you from moving to Open Stack or oVirt? diff --git a/2013-centos-dojo/redhat.png b/2013-centos-dojo/redhat.png new file mode 100644 index 0000000000000000000000000000000000000000..f50076ad8e004c4b299f28c79526e98f7c8a3d8d GIT binary patch literal 4763 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 literal 0 HcmV?d00001 diff --git a/2013-centos-dojo/run b/2013-centos-dojo/run new file mode 100755 index 0000000..666ad7e --- /dev/null +++ b/2013-centos-dojo/run @@ -0,0 +1,23 @@ +#!/bin/bash - +# Run the talk. + +# Avoid GNOME keyring stupidity +export GNOME_KEYRING_CONTROL= +export GNOME_KEYRING_PID= + +# Clean up everything. +find -name '*~' -delete + +# Get everything into the cache. +guestfish -a /dev/null run > /dev/null + +if [ "`hostname`" = "choo.home.annexia.org" ]; then + # SELinux permissive(!) This is because of a libvirt bug. + sudo setenforce Permissive + + # Make sure the disk images are owned by root.disk. + sudo chown root.disk /dev/fedora/{archlinux20121201x64,f18*,f20*,ubuntu*,win*} +fi + +# Run techtalk. +techtalk-pse diff --git a/2013-centos-dojo/style.css b/2013-centos-dojo/style.css new file mode 100644 index 0000000..19f6aa9 --- /dev/null +++ b/2013-centos-dojo/style.css @@ -0,0 +1,97 @@ +/* Red Hat red is rgb(204,0,0). */ + +body { + background: url(redhat.png) no-repeat; + background-position: 98% 0; + font-size: 24pt; /* For max */ + /* font-size: 20pt; */ /* For 1024x768 */ + /* font-family: liberation, helvetica; */ + font-family: helvetica; +} + +body td { /* why?? */ + /*font-size: 28pt;*/ + font-size: 20pt; +} + +h1 { + color: rgb(204,0,0); + /*font-size: 48px;*/ + font-size: 40px; + top: 8; + left: 0; + border-bottom: 2px solid rgb(204,0,0); +} + +b { + color: rgb(204,0,0); +} + +/* Title page */ +div#titlepage { + margin-top: 100px; + text-align: center; +} + +div#titlepage p.title { + color: rgb(204,0,0); + font-weight: bold; + font-size: 48px; +} + +div#titlepage p.subtitle { + color: black; + font-weight: bold; + font-size: 36px; +} + +div#titlepage p.subtitle b { + color: rgb(204,0,0); + font-weight: bold; + font-size: 36px; +} + +div#titlepage author { + font-size: 36px; +} + +/* CentOS logo on title page. */ +img#centoslogo { + position: absolute; + bottom: 25px; + left: 76px; + background-image: url('centos-bg.png'); + padding-left: 20px; + padding-right: 100px; +} + +/* Multi-column */ +div#twocolumns { + -moz-column-count: 2; + -webkit-column-count: 2; + column-count: 2; +} + +/* Code */ +pre.code { + margin-left: 1em; + background: #eee; +} + +code { + color: rgb(204,0,0); +} + +/* Bullet points */ +li { + padding-bottom: 16px; +} + +/* Logo */ +img#fish { + position: absolute; + top: 128px; + right: 32px; + width: 200px; + /*height: 256px;*/ +} \ No newline at end of file -- 1.8.3.1