Cloudstack for z/VM Meeting October 27



Barton - velocity
Alberto - SUSE
Len - ViCom
Mike M - ADP
Mike F - SUSE
Paul - IBM
Emily - IBM
Neale - Sine Nomine
Setareh - IBM
Dirk - SUSE

Last week’s meeting - requirements recap
Bakeoff between the different options: SMAPI, LXC, Zoom, zPRO
Security - Rob’s redpaper, firewalls, audit history
Auto builds, kiwi landscape

Question, should we categorize choices by open source and proprietary? This group should probably focus more on open source.

We can look at what we’re talking about as being 3 layers.
3 layers

Where do we want to focus our efforts?

Emily wrote in last week's minutes:

> Where do we want to focus our efforts?

One item I mentioned that I did not see in the minutes is the need for some
z/VM REXX EXECs to extend zoom/zuess. It should be fairly straightforward
for someone qualified. Let me elaborate on what I said on the call:

Zoom and zuess are on sourceforge. See:

For building new systems, we had to interface with existing REXX EXECs 
we’ve been using for years. So we wrote a “user exit”. Below is a description 
of the three operations and one sample “stub function”.

If someone has the desire, they could take a crack at finishing the stub function
and calling some REXX on a vanilla z/VM system.

Three operations in userexits.stubs:
1) Build System - Build (clone) a Linux system
2) Rebuild System - Rebuild a Linux system onto an existing virtual machine
3) Destroy System - Destroy a Linux system – shut it down and “NOLOG” it.

Sample stub function in /usr/local/sbin/userexits.stubs:

function buildSystem
# Build (clone) a Linux system
# Args: none
  zMkStatusFiles                           # make an output file with a unique name
  zSetGID                                  # set global gid if global grpPrj is set
  zLogMsg "Global variables in buildSystem():"
  zMsg "calledFrom  = $calledFrom"         # 'cli', 'webui' or 'restapi'
  zMsg "expMonths   = $expMonths"          # number of months till expiration
  zMsg "gid         = $gid"                # user.s group ID
  zMsg "grpPrj      = $grpPrj"             # group or group:project
  zMsg "memGB       = $memGB"              # GB of memory
  zMsg "newDistro   = $newDistro"          # Linux distribution to build
  zMsg "numCPUs     = $numCPUs"            # number of CPUs
  zMsg "LinuxFile   = $LinuxFile"          # file in /tmp where status is written
  zMsg "user        = $user"               # Linux user doing the build
  zMsg "VMfile      = $VMfile"             # file in /tmp where z/VM finishes callback
  zMsg "desc        = $desc"               # description of the new system
  zMsg "zoomFlags   = $zoomFlags"          # zoom flags to pass on
  zMsg " "
  zMsg "TO DO: write your code here in buildSystem() and copy to userexit.local"
  return 1                                 # not successful
 }                                         # buildSystem()

What we do is write a message to the console of the zoom server and IBM
Operations Manager traps it and calls a REXX EXEC, just passing it all
 arguments. Here’s the crux of that call:

echo $VMcmd | sudo /usr/bin/tee -a  /dev/console