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.