Provided by: rex_1.6.0-1_all bug

NAME

       Rex::Commands::Gather - Hardware and Information gathering

DESCRIPTION

       With this module you can gather hardware and software information.

       All these functions will not be reported. These functions don't modify anything.

SYNOPSIS

        operating_system_is("SuSE");

EXPORTED FUNCTIONS

   get_operating_system
       Will return the current operating system name.

        task "get-os", "server01", sub {
          say get_operating_system();
        };

       Aliased by operating_system().

   operating_system
       Alias for get_operating_system()

   get_system_information
       Will return a hash of all system information. These Information will be also used by the
       template function.

   kernelname
       Will return the kernel name of the operating system. For example on a linux system it will
       return Linux.

   dump_system_information
       This function dumps all known system information on stdout.

   operating_system_is($string)
       Will return 1 if the operating system is $string.

        task "is_it_suse", "server01", sub {
          if( operating_system_is("SuSE") ) {
            say "This is a SuSE system.";
          }
        };

   operating_system_version()
       Will return the os release number as an integer. For example, it will convert 5.10 to 510,
       10.04 to 1004 or 6.0.3 to 603.

        task "prepare", "server01", sub {
          if( operating_system_version() >= 510 ) {
            say "OS Release is higher or equal to 510";
          }
        };

   operating_system_release()
       Will return the os release number as is.

   network_interfaces
       Return an HashRef of all the networkinterfaces and their configuration.

        task "get_network_information", "server01", sub {
          my $net_info = network_interfaces();
        };

       You can iterate over the devices as follow

        my $net_info = network_interfaces();
        for my $dev ( keys %{ $net_info } ) {
          say "$dev has the ip: " . $net_info->{$dev}->{"ip"} . " and the netmask: " . $net_info->{$dev}->{"netmask"};
        }

   memory
       Return an HashRef of all memory information.

        task "get_memory_information", "server01", sub {
          my $memory = memory();

          say "Total:  " . $memory->{"total"};
          say "Free:   " . $memory->{"free"};
          say "Used:   " . $memory->{"used"};
          say "Cached:  " . $memory->{"cached"};
          say "Buffers: " . $memory->{"buffers"};
        };

   is_freebsd
       Returns true if the target system is a FreeBSD.

        task "foo", "server1", "server2", sub {
          if(is_freebsd) {
            say "This is a freebsd system...";
          }
          else {
            say "This is not a freebsd system...";
          }
        };

   is_redhat
        task "foo", "server1", sub {
          if(is_redhat) {
            # do something on a redhat system (like RHEL, Fedora, CentOS, Scientific Linux
          }
        };

   is_fedora
        task "foo", "server1", sub {
          if(is_fedora) {
            # do something on a fedora system
          }
        };

   is_suse
        task "foo", "server1", sub {
          if(is_suse) {
            # do something on a suse system
          }
        };

   is_mageia
        task "foo", "server1", sub {
          if(is_mageia) {
            # do something on a mageia system (or other Mandriva followers)
          }
        };

   is_debian
        task "foo", "server1", sub {
          if(is_debian) {
            # do something on a debian system
          }
        };

   is_alt
        task "foo", "server1", sub {
          if(is_alt) {
            # do something on a ALT Linux system
          }
        };

   is_netbsd
       Returns true if the target system is a NetBSD.

        task "foo", "server1", "server2", sub {
          if(is_netbsd) {
            say "This is a netbsd system...";
          }
          else {
            say "This is not a netbsd system...";
          }
        };

   is_openbsd
       Returns true if the target system is an OpenBSD.

        task "foo", "server1", "server2", sub {
          if(is_openbsd) {
            say "This is an openbsd system...";
          }
          else {
            say "This is not an openbsd system...";
          }
        };

   is_linux
       Returns true if the target system is a Linux System.

        task "prepare", "server1", "server2", sub {
          if(is_linux) {
           say "This is a linux system...";
          }
          else {
           say "This is not a linux system...";
          }
        };

   is_bsd
       Returns true if the target system is a BSD System.

        task "prepare", "server1", "server2", sub {
          if(is_bsd) {
           say "This is a BSD system...";
          }
          else {
           say "This is not a BSD system...";
          }
        };

   is_solaris
       Returns true if the target system is a Solaris System.

        task "prepare", "server1", "server2", sub {
          if(is_solaris) {
           say "This is a Solaris system...";
          }
          else {
           say "This is not a Solaris system...";
          }
        };

   is_windows
       Returns true if the target system is a Windows System.

   is_openwrt
       Returns true if the target system is an OpenWrt System.

   is_gentoo
       Returns true if the target system is a Gentoo System.

   is_arch
        task "foo", "server1", sub {
          if(is_arch) {
            # do something on a arch system
          }
        };