Replicar configuración entre dos IIS
Friday, 1. August 2008 8:51
Volvemos con un poco de Perl, esta vez para Windows. Tengo un cliente con un par de frontales web y en su día programé una pequeña utilidad para mantener la configuración de los dos servidores actualizada. Para que funcione es necesario que esté instalado Perl para Windows (Yo uso el de ActiveState) y la utilidad de migración de Internet Information Server que podéis descargar desde el site de Microsoft en esta dirección.
El script utilizada el servicio de componentes para conectarse al servidor remoto y pedirle el listado de sitios del IIS. Os pego aquí el código:
use Win32::OLE;
use Win32::OLE::Enum;
my $host = 'SERVIDORREMOTO';
qx,del "%SYSTEMROOT%\\system32\\inetsrv\\MetaBack\\IIS Migration Tool Backup*",;
my @webs = get_sites();
foreach (@webs) {
qx,iismt.exe $host w3svc/$_ /overwrite /noninteractive /configonly /siteid replace,;
}
sub get_sites {
my $IIS = Win32::OLE->GetObject("IIS://$host/W3svc");
my $enumIIS = Win32::OLE::Enum->new($IIS);
my @site_id;
foreach my $site ($enumIIS->All) {
if($site->{Name} =~ /^\d+$/) {
push @site_id,$site->{Name};
}
}
return @site_id;
}
Cosas a tener en cuenta:
– El script apenas tiene comprobación de errores (ninguna) así que os dejo a vosotros esa tarea ![]()
– La utilidad IISMT.EXE tiene que estar en el path o en el propio directorio donde esté el script
– Podéis compilar en un EXE el script para no tener el intérprete de perl en una máquina en producción. Yo uso perl2exe, no es caro ($49) y da muy buenos resultados.
Nos vemos pronto
Thema: IIS, Receta | Kommentare (0) | Autor: Iñaki