[Ovirt-devel] [PATCH server] updated appliance configuration for iscsi/nfs support

Scott Seago sseago at redhat.com
Thu Mar 5 00:13:30 UTC 2009


Joey Boggs wrote:
> This adds back in appliance iscsi/nfs functionality that has been missing since the switch to the new installer. Adds an appliance::bundled puppet class that is only used by the appliance installation configuration.
> ---
>  .../appliances/ovirt-appliance/ovirt-appliance.pp  |    1 +
>  .../modules/ovirt/files/ovirt-appliance-setup      |    4 +
>  installer/modules/ovirt/files/ovirt-storage        |   73 +++++++++
>  installer/modules/ovirt/manifests/appliance.pp     |  160 ++++++++++++++++++++
>  installer/modules/ovirt/manifests/init.pp          |    2 +-
>  5 files changed, 239 insertions(+), 1 deletions(-)
>  create mode 100755 installer/modules/ovirt/files/ovirt-appliance-setup
>  create mode 100755 installer/modules/ovirt/files/ovirt-storage
>  create mode 100644 installer/modules/ovirt/manifests/appliance.pp
>
> diff --git a/installer/appliances/ovirt-appliance/ovirt-appliance.pp b/installer/appliances/ovirt-appliance/ovirt-appliance.pp
> index 125edf9..ffeceba 100644
> --- a/installer/appliances/ovirt-appliance/ovirt-appliance.pp
> +++ b/installer/appliances/ovirt-appliance/ovirt-appliance.pp
> @@ -44,3 +44,4 @@ include tftp::bundled
>  include postgres::bundled
>  include freeipa::bundled
>  include ovirt::setup
> +include appliance::bundled
> diff --git a/installer/modules/ovirt/files/ovirt-appliance-setup b/installer/modules/ovirt/files/ovirt-appliance-setup
> new file mode 100755
> index 0000000..e3ab63d
> --- /dev/null
> +++ b/installer/modules/ovirt/files/ovirt-appliance-setup
> @@ -0,0 +1,4 @@
> +for i in `seq 1 5`; do; /bin/dd if=/dev/null of=/ovirtiscsi/iSCSI$i bs=1 count=1 seek=5G; done"
> +
> +for i in `seq 1 5`; do; /bin/dd if=/dev/zero of=/ovirtnfs/disk$i.dsk bs=1 count=1 seek=5G;done",
> +
>   
OK so I finally got my appliance up. The storage pools were there but 
the above-referenced files weren't created. There seem to be two 
problems here:
1) nothing actually calls this script that I can see. The puppet 
manifest just creates the file
2) the script fails to run when I attempted it manually as it's got 
syntax errors.

Scott

> diff --git a/installer/modules/ovirt/files/ovirt-storage b/installer/modules/ovirt/files/ovirt-storage
> new file mode 100755
> index 0000000..e923500
> --- /dev/null
> +++ b/installer/modules/ovirt/files/ovirt-storage
> @@ -0,0 +1,73 @@
> +#!/bin/bash
> +#
> +# ovirt-storage Set up storage for oVirt Server Appliance
> +#
> +# chkconfig: 3 96 4
> +# description: oVirt Appliance Storage Services
> +#
> +
> +# Source functions library
> +. /etc/init.d/functions
> +TARGET_ID=32101
> +
> +prog="ovirt-storage"
> +num_iscsi_luns=5
> +
> +start() {
> +    echo -n "Starting $prog: "
> +
> +    # Set up the fake iscsi target
> +    tgtadm --lld iscsi --op new --mode target --tid $TARGET_ID \
> +        -T ovirtpriv:storage
> +
> +    #
> +    # Now associate them to the LVs
> +    #
> +    for i in `seq 1 $num_iscsi_luns` ; do
> +        tgtadm --lld iscsi --op new --mode logicalunit --tid $TARGET_ID \
> +            --lun $i -b /ovirtiscsi/iSCSI$i
> +    done
> +
> +    #
> +    # Now make them available
> +    #
> +    tgtadm --lld iscsi --op bind --mode target --tid $TARGET_ID -I ALL
> +
> +    echo_success
> +    echo
> +}
> +
> +stop() {
> +    echo -n "Stopping $prog: "
> +
> +    # stop access to the iscsi target
> +    tgtadm --lld iscsi --op unbind --mode target --tid $TARGET_ID -I ALL
> +
> +    # unbind the LUNs
> +    for i in `seq 1 $num_iscsi_luns` ; do
> +        tgtadm --lld iscsi --op delete --mode logicalunit --tid $TARGET_ID --lun $i
> +    done
> +
> +    # shutdown the target
> +    tgtadm --lld iscsi --op delete --mode target --tid $TARGET_ID
> +
> +    echo_success
> +    echo
> +}
> +
> +case "$1" in
> +    start)
> +        start
> +        ;;
> +    stop)
> +        stop
> +        ;;
> +    restart)
> +        stop
> +        start
> +        ;;
> +    *)
> +        echo "Usage: $0 {start|stop|restart}"
> +        exit 2
> +esac
> +
> diff --git a/installer/modules/ovirt/manifests/appliance.pp b/installer/modules/ovirt/manifests/appliance.pp
> new file mode 100644
> index 0000000..9579837
> --- /dev/null
> +++ b/installer/modules/ovirt/manifests/appliance.pp
> @@ -0,0 +1,160 @@
> +#--
> +#  Copyright (C) 2008 Red Hat Inc.
> +#
> +#  This library is free software; you can redistribute it and/or
> +#  modify it under the terms of the GNU Lesser General Public
> +#  License as published by the Free Software Foundation; either
> +#  version 2.1 of the License, or (at your option) any later version.
> +#
> +#  This library is distributed in the hope that it will be useful,
> +#  but WITHOUT ANY WARRANTY; without even the implied warranty of
> +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +#  Lesser General Public License for more details.
> +#
> +#  You should have received a copy of the GNU Lesser General Public
> +#  License along with this library; if not, write to the Free Software
> +#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
> +#
> +# Author: Joey Boggs <jboggs at redhat.com>
> +#--
> +
> +class appliance::bundled {
> +
> +$nfs_changes = [
> +    "set /files/etc/sysconfig/nfs/MOUNTD_PORT 892"
> +]
> +
> +augeas {"nfs_config":
> +    changes => $nfs_changes,
> +    notify => Service["nfs"]
> +}
> +
> +$nfslock_changes = [
> +    "set /files/etc/sysconfig/nfs/LOCKD_TCPPORT 32803",
> +    "set /files/etc/sysconfig/nfs/LOCKD_UDPPORT 32769",
> +    "set /files/etc/sysconfig/nfs/STATD_PORT 662"
> +]
> +
> +augeas {"nfslock_config":
> +    changes => $nfslock_changes,
> +    notify => Service["nfslock"]
> +}
> +
> +#file {"/boot/grub/splash.xpm.gz":
> +#    source => "puppet:///ovirt/ovirt-splash.xpm.gz"
> +#}
> +
> +firewall_rule {"tgtd": destination_port => '3260'}
> +firewall_rule {"nfsd": destination_port => '2049'}
> +firewall_rule {"rpcbind": destination_port => '111'}
> +firewall_rule {"rpcbind-udp": destination_port => '111', protocol => 'udp'}
> +firewall_rule {"rpc.mountd": destination_port => '892'}
> +firewall_rule {"rpc.mountd-udp": destination_port => '892', protocol => 'udp'}
> +firewall_rule {"rpc.statd": destination_port => '662'}
> +firewall_rule {"rpc.statd-udp": destination_port => '662', protocol => 'udp'}
> +
> +service {"nfs":
> +    ensure => "running",
> +    enable => true,
> +    require => Service["network"]
> +}
> +
> +service {"nfslock":
> +    ensure => "running",
> +    enable => true
> +}
> +
> +service {"network":
> +    ensure => "running",
> +    enable => true
> +}
> +
> +file{"/mnt/data/ovirtiscsi":
> +    ensure => directory
> +}   
> +
> +file{"/ovirtiscsi":
> +    ensure => directory
> +}
> +
> +file{"/ovirtnfs":
> +    ensure => directory
> +}
> +
> +file{"/mnt/data/ovirtnfs":
> +    ensure => directory
> +}
> +
> +mount{"/ovirtiscsi":
> +    atboot => true,
> +    ensure => mounted,
> +    fstype => bind,
> +    options => bind,
> +    device => "/mnt/data/ovirtiscsi",
> +    require => [File["/mnt/data/ovirtiscsi"],File["/ovirtiscsi"]]
> +}
> +
> +mount{"/ovirtnfs":
> +    atboot => true,
> +    ensure => mounted,
> +    fstype => bind,
> +    options => bind,
> +    device => "/mnt/data/ovirtnfs",
> +    require => [File["/mnt/data/ovirtnfs"],File["/ovirtnfs"]]
> +}
> +
> +file {"/usr/sbin/ovirt-appliance-setup":
> +    source => "puppet:///ovirt/ovirt-appliance-setup",
> +    mode => 755
> +}
> +
> +single_exec{"ovirtnfs_export":
> +    command => '/bin/echo "/ovirtnfs 192.168.50.0/24(rw,no_root_squash)" >> /etc/exports',
> +    notify => Service[nfs]
> +}
> +
> +file{"/mnt/data/cobblernfs":
> +    ensure => directory
> +}
> +
> +file{"/cobblernfs":
> +    ensure => directory
> +}
> +
> +mount{"/cobblernfs":
> +    atboot => true,
> +    ensure => mounted,
> +    fstype => bind,
> +    options => bind,
> +    device => "/mnt/data/ovirtnfs",
> +    require => [File["/mnt/data/ovirtnfs"],File["/cobblernfs"]]
> +}
> +
> +single_exec{"cobbler_nfs_export":
> +    command => '/bin/echo "/cobblernfs 192.168.50.0/24(rw,no_root_squash)" >> /etc/exports',
> +    notify => Service[nfs],
> +    require => Mount["/cobblernfs"]
> +}
> +
> +
> +file {"/etc/init.d/ovirt-storage":
> +	source => "puppet:///ovirt/ovirt-storage",
> +	mode => 755
> +}
> +
> +service {"ovirt-storage":
> +    ensure => "running",
> +    enable => true,
> +    require => [File["/etc/init.d/ovirt-storage"],File["/usr/sbin/ovirt-appliance-setup"]]
> +}
> +
> +package{"scsi-target-utils":
> +    ensure => installed
> +}
> +
> +package{"iscsi-initiator-utils":
> +    ensure => installed
> +}
> +
> +
> +}
> diff --git a/installer/modules/ovirt/manifests/init.pp b/installer/modules/ovirt/manifests/init.pp
> index 87f6832..a09cea1 100644
> --- a/installer/modules/ovirt/manifests/init.pp
> +++ b/installer/modules/ovirt/manifests/init.pp
> @@ -6,4 +6,4 @@ import "ovirt/freeipa.pp"
>  import "ovirt/ovirt.pp"
>  import "ovirt/postgres.pp"
>  import "appliance_base/single_exec.pp"
> -
> +import "ovirt/appliance.pp"
>   




More information about the ovirt-devel mailing list