Zentyal Forum, Linux Small Business Server
International => Magyar => Topic started by: levideo on February 14, 2013, 02:23:50 pm
-
Meglévő, működő Ubuntu szerveren lévő dhcp és proxy (SQUID) -beállítások importálása
új szerverre ZENTYAL 3 -ba lehetséges ?? Ha igen, hogyan ??
-
http://doc.zentyal.org/en/develop.html#advanced-service-customisation
-
Ezt már nézetem, de nem tudom , hogy ez kell-e nekem...
Nekem a régi szerveren megvan a kitöltött dhdcp.conf ezt szeretném "beimportálni" a zettyal-ba.
Elég sok bejegyzés van benne, nem akarom kézzel begépelni ezeket a zentyalba.
Lustaság, fél egészség !! ;)
A squid config fájlja még nagyobb, azt is be kéne importálni a zentyal-ba..
Gondolom adatbázisban (MySQL) tárolja a zentyal a beállíttásokat.
Usereket, Groupokat, ZARAFA-ba DOVECOT-ból leveleket , címjegyzéket CSV-ből már tudok migrálni.
-
mashogy nem fog menni, ha specko konfigot akarsz a zentyal moduljaihoz. nezd at a stubs/modulnev konyvtarban a konfiguracios file-okat es abba probald beintegralni a sajat beallitasaidat.
a masik megoldas az, hogy nem a zentyal modulkent telepitesz csomagokat, hanem kezzel, viszont akkor ugorhat a rendszer integritasa es neked kell mindenre gondolnod...tuzfalbeallitasoktol, jogosultsagoktol kezdve a mas szoftvermodulokkal valo kapcsolatokig, stb. gondolj peldaul egy egyszerubb levelezo rendszerre, postfix/dovecot/amavis/spamassassin/clamav/imapproxy/stb vagy egy samba/ldap/pdc/bdc konfigra.
-
Nekem nem speckó config kell, hanem a gépek IP címét - MAC címét szeretném a ZENTYAL DHCP-szerverébe beimportálni egy bash, vagy perl scripttel, úgy mint a USER-eket anno.
Ha a WebGUI-n lehet egy gépet bevinni, gondolom scripttel is lehet csoportosan CSV vagy TXT fájlból.
Én erre gondoltam.
A SQUID-nél ugyan csak az engedélyezett gépek IP-it szeretném beimportálni.
Ez most kb. 100 sor.
-
Új fejlemény:
Összedobtam egy PERL scriptet ami elvileg létrehozná egy pontosvesszőkkel tagolt fájlból a DHCP.CONF-ba a statikus gép IP-MAC -párosokat.
Íme :
#!/usr/bin/perl
use strict;
use warnings;
use EBox;
use EBox::Global;
use Error qw(:try);
EBox::init();
my $global = EBox::Global->getInstance(1);
my $network = $global->modInstance("network");
my $mask = "255.255.255.0";
my $i = 0;
open (my $DHCP_G, 'dhcp.csv');
while (my $line = <$DHCP_G>) {
chomp ($line);
my ($iface, $address) = split(';', $line);
my $i++;
EBox::debug('Called dhcp-address.pl with the following values:');
$iface or exit;
EBox::debug("iface: $iface");
$address or exit;
EBox::debug("address: $address");
$mask or exit;
EBox::debug("mask: $mask");
try {
$network->setDHCPAddress($iface, $address, $mask);
print $iface." > OK\n";
} otherwise {
print $iface." > NEM OK\n";
EBox::error("Call to setDHCPAddress for $iface failed");
} finally {
exit;
};
}
close ($DHCP_G);
1;
DE !
Ez csak a dhcp.conf -ban hozza létre, és ez előtt még a network objectumokat kéne megcsinálni.
Tehát a kérdésem :
Hogyan lehet egy NETWORK OBJECT-et létrehozni script-tel ?
Pl:
objectum neve (GEP1)
objectum-ba tartozó al-objectum neve (GEP1)
az al objectum IP címe (192.168.168.10)
az al objectum MAC címe (aa:bb:cc:dd:ee:ff)
Ezt a WEBGUI alapján ötöltem ki.
-
Megvan a megoldás !!!
Ezt a scriptet használva létre lkehet hozni CSV-ből a gép objektumokat :
https://github.com/thinetic-systems/zentyal-fwmac/blob/master/zentyal-import-hosts
Kicsit átalakítva az én CSV-mhez :
./import_dhcp.pl
#!/usr/bin/perl
use strict;
use warnings;
use EBox;
use EBox::Global;
use Error qw(:try);
if (@ARGV != 1) {
print "Usage:\n\n";
print "\import_dhcp.pl object_name\n\n";
exit 1;
}
EBox::init();
my @tagok;
my $obj_name=$ARGV[0];
my $objects = EBox::Global->modInstance('objects');
my $mask = 32;
open (my $DHCP_G, 'dhcp.csv');
# parses a file: mac,ip,hostname
while(my $line = <$DHCP_G>) {
chomp($line);
my ($ip,$mac,$name) = split(';',$line);
push (@tagok, {
'name' => $name,
'address_selected' => 'ipaddr',
'address' => 'ipaddr',
'ipaddr_ip' => $ip,
'ipaddr_mask' => $mask,
'macaddr' => $mac,
});
print "Add ".$name." with ".$mac." => ".$ip." \n";
}
close ($DHCP_G);
$objects->addObject(
name => $obj_name,
members => \@tagok,
);
1;
A dhcp.csv :
192.168.168.9;20:cf:30:49:17:63;GEP1
192.168.168.10;20:cf:30:49:17:64;GEP2
192.168.168.11;20:cf:30:49:17:65;GEP3
./import_dhcp.pl BELSOK
Utána már csak a WebGui-n hozzá kell adni a DHCP-modulnál a BELSOK -objektumot, és kész is.
http://ubuntuone.com/4Rvqfe9X47CiVaVMEzZyds
-
Sziasztok!
Megpróbáltam az eredetit https://github.com/thinetic-systems/zentyal-fwmac/commit/8a4978a544f8d83353bc99e0abb6f0bd4998f3b5 (https://github.com/thinetic-systems/zentyal-fwmac/commit/8a4978a544f8d83353bc99e0abb6f0bd4998f3b5) és az itt javasolt módosítást is.
Még a tesztadatokkal sem működik:
"A dhcp.csv :
192.168.168.9;20:cf:30:49:17:63;GEP1
192.168.168.10;20:cf:30:49:17:64;GEP2
192.168.168.11;20:cf:30:49:17:65;GEP3"
"./import_dhcp.pl BELSO5
readline() on closed filehandle $DHCP_G at ./import_dhcp.pl line 25."
Ugyanez a hiba az eredetivel is.
3.5-be szeretném beimportálni.
A filejogolsultságok 777-en vannak.
-
kiprobaltam, nalam megy!
a dhcp.csv file tartalma:
192.168.168.9;20:cf:30:49:17:63;GEP1
192.168.168.10;20:cf:30:49:17:64;GEP2
192.168.168.11;20:cf:30:49:17:65;GEP3
valtoztasd meg a meg a dhcp.csv file tulajdonosat:
sudo chown $USER:$USER dhcp.csv
utanna a köv. parancscsal futtasd a perl scriptet:
sudo ./import_dhcp.pl BELSOK
a valasz igy nez ki:
Add GEP1 with 20:cf:30:49:17:63 => 192.168.168.9
Add GEP2 with 20:cf:30:49:17:64 => 192.168.168.10
Add GEP3 with 20:cf:30:49:17:65 => 192.168.168.11
-
Továbbra is ugyanaz :(
root@t310:~# ./import_dhcp.pl BELSOK
Unrecognized escape \i passed through at ./import_dhcp.pl line 12.
readline() on closed filehandle $DHCP_G at ./import_dhcp.pl line 24.
Nem lehet hogy a 14-es ubuntu okozza a hibát?
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
-
Sziasztok!
Ez a filehandle hibán nem tudok túljutni.
Szorgosan kipróbáltam mindenféle megoldást (az eredeti és az itt módosított változaton is), minden hibát sikerült megtalálni javítani, de ezen nem bírok túljutni.
-
Úgy néz ki megoldódott.
A perlel volt valami hiba.