Modificare la configurazione di Webmin da command line

From RVM Wiki
Jump to navigation Jump to search

È possibile farlo in due modi

  • Con api XML RPC (TODO)
  • Tramite modulo Perl

API Perl

Creazione del pacchetto debian

wget "http://www.webmin.com/Webmin-API-1.0.tar.gz"
tar xvzf Webmin-API-1.0.tar.gz
sudo apt-get install dh-make-perl devscripts
dh-make-perl Webmin-API-1.0
DEB_BUILD_OPTIONS=nocheck debuild
sudo dpkg -i libwebmin-api-perl_1.0-1_all.deb

Esempio per creazione utente e gruppo

  • Questo script crea l'utente helpdesk, lo inserisce nel gruppo helpdesk-group e gli assegna i moduli dhpcd e lpadmin. Da notare che al termine dello script è necessario riavviare webmin
#!/usr/bin/perl
use Webmin::API;
use Data::Dumper;
foreign_require("acl", "acl-lib.pl");
if ( !acl::get_user('helpdesk') ) {
        print "Creating user helpdesk\n";
        $newUser = { 'name' => 'helpdesk',
             'pass' => acl::encrypt_password('onlyview'),
                         'temppass' => '0',
                         'nochange' => '0',
                        'modules' => [ 'dhcpd', 'lpadmin' ]
        };
        acl::create_user($newUser);
        system("/usr/sbin/invoke-rc.d", "webmin", "restart");
}

if ( !acl::get_group('helpdesk-group') ) {
        print "Creating group helpdesk-group\n";
        $newGroup = { 'name' => 'helpdesk-group',
                        'members' =>  [ 'helpdesk' ] ,
                                'modules' => [ 'dhcpd', 'lpadmin' ]
        };

        acl::create_group($newGroup);
        system("/usr/sbin/invoke-rc.d", "webmin", "restart");
}
  • Questo script lista utenti e gruppi in formato ababstanza leggibile:
#!/usr/bin/perl
use Webmin::API;
use Data::Dumper;
foreign_require("acl", "acl-lib.pl");
@users = acl::list_users();
for $href (@users) {
        print "{ ";
    for $role ( keys %$href ) {
         print "$role=$href->{$role} ";
    }
    print "}\n\n";
}

@groups = acl::list_groups();
for $href (@groups) {
        print "{ ";
    for $role ( keys %$href ) {
         print "$role=$href->{$role} ";
    }
    print "}\n\n";
}

Riferimenti