Hi, i need to import around 1500 zones into ISPConfig. Doing this manually through the webinterface is not a viable option. Is there a way to import zonefiles with the remoting client? I know of the dns_*_add functions but is there something for whole zonfiles? Or maybe someone with a script that can parse zonefiles, so i can add the zones and DNS entries with the remoting client? Any help or ideas are appriciated
Look for the remoting client and sample scripts in ISPConfig's gitlab. That's how I did it in 2015 when I had to migrate our manually managed file-based Named zone files to ISPConfig database.
I know the API functions for DNS Entires/Zones, but there is no function to import a zonefile as a whole, right? Can you elaborate how to did it?
If I recall correctly I wrote a bash wrapper script that looped through all Named zone files which passed the zone file as an argument to one of the ISPConfig dns import sample scripts. Sorry that I can't explain it more in detail. That's almost 8 years ago and I can't find the scripts anymore.
No worries But that script is exactly what i am looking for, the importing is clear to me, but the parsing through the zonefiles and extracting every record from a zone is a tiring task, especially when the zonefiles are edited by hand...
As far as I know, there is no API function for parsing zone files. What you might do is that you grab the zone file parsing code from the GUI zone file import function and use this to do API calls so you don't have to start from scratch. Or do some googling, maybe someone wrote such a script and published it somewhere.
That seems like exactly what michelangelo did 8 years ago, he gave me his old script. I'll have a look into the current source and see if i can make use of it. Already tried my luck searching some scripts, but with no real luck If i'm able to make it work i'll update with the scripts in this thread
I think the script I gave you was the dns_import.php file that is used in ISPConfig if you want to import zone files via the ISPC UI. I just don't know if I adapted it or if I took it from somewhere else too. All of this happened simply too long ago. Anyway, good luck with it.
If you figure it out, please share and we can add it to our git server. And if not, feel free to get in touch to see if I can be of service.