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
  }
};

is_void

Returns true if the target system is a Void Linux system.