There are several possibilities (this *is* *Nix, after all), but several questions first: aren't you using dhcp to give them IPs? Won't the dhcp client rewrite resolv.conf?
For the other stuff, if it needs to run once, why not have the script looking for a lock file, and if it's not there run, ending by creating the lock file. Then, after everything's up and wonderfully correct, you can run a script everywhere that, if it finds the lockfile, deletes both that, and the script?