Net::IPA.pm -- Perl 5 interface of the (Free)IPA JSON-RPC API
use Net::IPA; my $ipa = new Net::IPA( hostname => 'ipa.server.com', cacert => '/etc/ipa/ca.cert', ); # (a) Login can be done via Kerberos $ipa->login(); # (b) Login can be done via Kerberos (creating the ticket) $ipa->login( username => 'admin', keytab => '/etc/ipa/admin.keytab' ); # (c) Login can be done using username and password $ipa->login( username => 'admin', password => 'admin-password' ); # Control error die $ipa->error if($ipa->error); # $user_show is of the type Net::IPA::Response my $user_show = $ipa->user_show('username'); die 'Error: ' . $user_show->error_string() if($user_show->is_error); # Requests can be batched use Net::IPA::Methods; my @users_show = $ipa->batch( Net::IPA::Methods::user_show('username1'), Net::IPA::Methods::user_show('username2'), Net::IPA::Methods::user_show('username3'), ); foreach my $user_show (@users_show){ # $user_show is of the type Net::IPA::Response if($user_show->is_error){ print 'Error: ' . $user_show->error_string() . "\n"; next; } # Do something }
For methods look at the Net::IPA::Methods module.
To install Net::IPA, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::IPA
CPAN shell
perl -MCPAN -e shell install Net::IPA
For more information on module installation, please visit the detailed CPAN module installation guide.