pkvlm-create
changeset 9 ef5f501266ae
parent 8 ba98eb53344a
child 11 8e5fce1229b6
equal deleted inserted replaced
8:ba98eb53344a 9:ef5f501266ae
     4 set -u
     4 set -u
     5 set -e
     5 set -e
     6 
     6 
     7 TESTING=
     7 TESTING=
     8 
     8 
       
     9 DO_SHOWSPEC=y
     9 DO_VIRTINSTALL=
    10 DO_VIRTINSTALL=
    10 
    11 
    11 scripts=$(dirname $0)/scripts
    12 scripts=$(dirname $0)/scripts
    12 . $scripts/lib.sh
    13 . $scripts/lib.sh
    13 
    14 
    59             ;;
    60             ;;
    60 
    61 
    61         q)
    62         q)
    62             LOG_CMD=
    63             LOG_CMD=
    63             LOG_INFO=
    64             LOG_INFO=
       
    65             DO_SHOWSPEC=
    64             
    66             
    65             log_debug "log: Quiet"
    67             log_debug "log: Quiet"
    66             ;;
    68             ;;
    67 
    69 
    68         N)
    70         N)
    94             exit 1
    96             exit 1
    95             ;;
    97             ;;
    96     esac
    98     esac
    97 done
    99 done
    98 
   100 
       
   101 
    99 # forget them
   102 # forget them
   100 shift $(( $OPTIND - 1 ))
   103 [ $OPTIND -gt 1 ] && shift $(( $OPTIND - 1 ))
   101 
   104 
   102 ## Command-line arguments
   105 ## Command-line arguments
   103 # Name
   106 # Name
   104 [ -z $1 ] && die "Machine name must be given as first argument"
   107 [ -z $1 ] && die "Machine name must be given as first argument"
   105 
   108 
   132 define_opt  disk_bus    virtio
   135 define_opt  disk_bus    virtio
   133 define_opt  guest_disk  /dev/vda
   136 define_opt  guest_disk  /dev/vda
   134 define_opt  hostname    $opt_name
   137 define_opt  hostname    $opt_name
   135 define_opt  bridge      br-lan
   138 define_opt  bridge      br-lan
   136 define_opt  dns_domain  paivola.fi
   139 define_opt  dns_domain  paivola.fi
   137 define_opt  ip          $(resolve_name ${opt_name}.${opt_dns_domain})
   140 define_opt  ip          
   138 
   141 
   139 log_info "Processing ${#@} parameters:"
   142 log_info "Processing ${#@} parameters:"
   140 for param in "$@"; do
   143 for param in "$@"; do
   141     name=${param%=*}
   144     name=${param%=*}
   142     value=${param##*=}
   145     value=${param##*=}
   144     # evaluate
   147     # evaluate
   145     value=$(expand_line "$value")
   148     value=$(expand_line "$value")
   146 
   149 
   147     define_opt ${name} "${value}"
   150     define_opt ${name} "${value}"
   148 done
   151 done
       
   152 
       
   153 # resolve defaults
       
   154 if [ -z $opt_ip ]; then
       
   155     define_opt  ip          $(resolve_name ${opt_name}.${opt_dns_domain})
       
   156 fi
   149 
   157 
   150 ### State
   158 ### State
   151 ## Guest info
   159 ## Guest info
   152 GUEST_NAME=$opt_name
   160 GUEST_NAME=$opt_name
   153 
   161 
   228 ## SELinux?
   236 ## SELinux?
   229 #SEMANAGE=/usr/sbin/semanage
   237 #SEMANAGE=/usr/sbin/semanage
   230 #RESTORECON=/sbin/restorecon
   238 #RESTORECON=/sbin/restorecon
   231 
   239 
   232 ### Prepare
   240 ### Prepare
   233 cat <<END
   241 if [ $DO_SHOWSPEC ]; then
       
   242     cat <<END
   234 Guest:
   243 Guest:
   235     Name:       $GUEST_NAME
   244     Name:       $GUEST_NAME
   236     CPUs:       $GUEST_VCPUS
   245     CPUs:       $GUEST_VCPUS
   237     RAM:        $GUEST_RAM
   246     RAM:        $GUEST_RAM
   238     OS:         $GUEST_OS_VARIANT
   247     OS:         $GUEST_OS_VARIANT
   273     Target:     $PRESEED_FILE
   282     Target:     $PRESEED_FILE
   274     Isolinux:   $PRESEED_ISOLINUX
   283     Isolinux:   $PRESEED_ISOLINUX
   275     Includes:   $PRESEED_INCLUDES
   284     Includes:   $PRESEED_INCLUDES
   276 
   285 
   277 END
   286 END
   278 
   287 fi
   279 
   288 
   280 [ $TESTING ] && exit 0
   289 [ $TESTING ] && exit 0
   281 
   290 
   282 ### Check
   291 ### Check
   283 # Parameters given?
   292 # Parameters given?
   284 [ -z $NET_IPADDR ] && die "net: No IP-address given: ip"
   293 [ -z $NET_IPADDR ] && die "net: No IP-address given: ip"
   285 
   294 
   286 # VM exists?
   295 # VM exists?
   287 if cmd virsh domid ${GUEST_NAME} 2> /dev/null; then
   296 if cmd virsh domid ${GUEST_NAME} > /dev/null 2> /dev/null; then
   288     die "Virtual machine already exists: ${GUEST_NAME}"
   297     die "Virtual machine already exists: ${GUEST_NAME}"
   289 fi
   298 fi
   290 
   299 
   291 # Installer exists?
   300 # Installer exists?
   292 if cmd test ! -f ${INSTALLER_ISO}; then
   301 if cmd test ! -f ${INSTALLER_ISO}; then