» Home » Docs » Release notes » Release notes for 0.4
Release notes for 0.4
Rex
Hardware and Information gathering
Now you can get information of the servers hardware and configuration.
use Rex::Hardware; use Data::Dumper;
<span class="hljs-function">print</span> Dumper( \<span class="hljs-type">%hw</span> );
};
Will produce the following example output:
<pre><code class="hljs"><span class="hljs-type">$VAR1</span> = {
'<span class="hljs-string">Network</span>' => {
'<span class="hljs-string">networkdevices</span>' => [ '<span class="hljs-string">eth0</span>', '<span class="hljs-string">wlan0</span>' ],
'<span class="hljs-string">networkconfiguration</span>' => {
'<span class="hljs-string">wlan0</span>' => {
'<span class="hljs-string">broadcast</span>' => '<span class="hljs-string">192.168.2.255</span>',
'<span class="hljs-string">ip</span>' => '<span class="hljs-string">192.168.2.229</span>',
'<span class="hljs-string">netmask</span>' => '<span class="hljs-string">255.255.255.0</span>',
'<span class="hljs-string">mac</span>' => '<span class="hljs-string">00:21:5C:5C:1E:5F</span>'
},
'<span class="hljs-string">eth0</span>' => {
'<span class="hljs-string">broadcast</span>' => <span class="hljs-function">undef</span>,
'<span class="hljs-string">ip</span>' => <span class="hljs-function">undef</span>,
'<span class="hljs-string">netmask</span>' => <span class="hljs-function">undef</span>,
'<span class="hljs-string">mac</span>' => '<span class="hljs-string">00:1C:25:94:B0:85</span>'
}
}
},
'<span class="hljs-string">Memory</span>' => {
'<span class="hljs-string">shared</span>' => '<span class="hljs-string">0</span>',
'<span class="hljs-string">buffers</span>' => '<span class="hljs-string">36</span>',
'<span class="hljs-string">free</span>' => '<span class="hljs-string">3168</span>',
'<span class="hljs-string">used</span>' => '<span class="hljs-string">792</span>',
'<span class="hljs-string">total</span>' => '<span class="hljs-string">3961</span>',
'<span class="hljs-string">cached</span>' => '<span class="hljs-string">407</span>'
},
'<span class="hljs-string">Kernel</span>' => {
'<span class="hljs-string">kernelversion</span>' => '<span class="hljs-string">#1 SMP PREEMPT 2011-02-21 10:34:10 +0100</span>',
'<span class="hljs-string">architecture</span>' => '<span class="hljs-string">x86_64</span>',
'<span class="hljs-string">kernel</span>' => '<span class="hljs-string">Linux</span>',
'<span class="hljs-string">kernelrelease</span>' => '<span class="hljs-string">2.6.37.1-1.2-desktop</span>'
},
'<span class="hljs-string">Swap</span>' => {
'<span class="hljs-string">free</span>' => '<span class="hljs-string">3812</span>',
'<span class="hljs-string">used</span>' => '<span class="hljs-string">0</span>',
'<span class="hljs-string">total</span>' => '<span class="hljs-string">3812</span>'
},
'<span class="hljs-string">Host</span>' => {
'<span class="hljs-string">domain</span>' => '<span class="hljs-string">site</span>',
'<span class="hljs-string">manufacturer</span>' => '<span class="hljs-string">LENOVO</span>',
'<span class="hljs-string">hostname</span>' => '<span class="hljs-string">linux-ymf0.site</span>',
'<span class="hljs-string">operatingsystemrelease</span>' => '<span class="hljs-string">11.4</span>',
'<span class="hljs-string">operatingsystem</span>' => '<span class="hljs-string">SuSE</span>'
}
};
Install Packages
Support for apt, yum and zypper (OpenSuSE)
Example:
# include for ,,install'' Function use Rex::Commands::Pkg;
user "root";
private_key "/Users/jan/.ssh/id_rsa"; public_key "/Users/jan/.ssh/is_rsa.pub";
# group servers group "test" => "debian01", "centos01", "suse01";
# run tasks in parallel parallelism 2;
desc "Prepare System"; task "prepare", group => "test", sub {
<span class="hljs-comment"># check if operating system is CentOS, because on CentOS vim is</span><span class="hljs-comment">
# available through the package "vim-enhanced". if ( operating_system_is("CentOS") ) { install package => "vim-enhanced"; } else { install package => "vim"; }
install <span class="hljs-keyword">package</span> => "<span class="hljs-string">mc</span>";
};
This task will install *vim* and *mc* on all the 3 systems.