Beiträge vom August, 2008

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 :P
– 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