WSUS telepítése Windows Server 2012-re

A Windows Server Update Services telepítése Windows Server 2012-n alapvetően nem nehéz feladat: mivel az operációs rendszer része, még letölteni sem kell, csak végig kell nyomkodni a varázslót a Server Managerben. Aki nem hiszi el, nézze végig ezt a képes step-by-step útmutatót.

Ennek ellenére nekem nagyon nehezen jött össze. Ha telepítőkről van szó, én kétségkívül vonzom a hibákat, azonban a neten talált hihetetlen mennyiségű fórum bejegyzés arra utal, hogy nem vagyok egyedül. Íme a tapasztalatok.

Megjegyzés:
Az alábbi módszerek nálam működtek, de egyes esetekben magam sem tudom, hogy miért ez a megoldás a problémára. Csak saját felelősségedre próbáld ki!

A környezetről annyit, hogy egy frissen telepített WS 2012 tartományvezérlőről van szó, amin szépen megférne a WSUS. Nem találtam olyan leírást, ami arra utalna, hogy ez nem támogatott környezet.

NTFS jogok

A Prepare for Your WSUS Deployment című TechNet cikk szerint az NT Authority\Network Service felhasználónak Full Control jogokat kell adni az alábbi mappákra, különben a WSUS Administration snap-in nem fog jól működni:

  • %windir%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  • %windir%\Temp

Ebben az a szép, hogy – ahogy a dokumentáció is írja – az első útvonal nem biztos, hogy létezik, ha még nincs a gépen IIS. A WSUS-nak kell az IIS, és szerencsére elég okos a telepítő ahhoz, hogy szükség esetén a Web Role szerepkört is telepítse. Ráadásul még azt is tudja, hogy az IIS-nek mely komponensei kellenek a WSUS-hoz, tehát a “minimal install” elv jegyében érdemes a WSUS telepítővel telepíteni az IIS-t is. De akkor hogy adjunk jogot még a telepítés előtt a nem létező mappára?

Role Services

A telepítő varázslóban egyszer csak elérkezünk a Role services lépéshez:

WSUS install wizard: Select role services

Ha esetleg lelkesen bepipálnánk az összes komponenst, akkor készüljünk fel az alábbi hibaüzenetre:

The following features cannot be installed on the same server: Database, WID Database.

The following features cannot be installed on the same server: Database, WID Database.

Egy kis magyarázat, mert az elnevezések nem nyilvánvalóak:

  • A WID Database (ami alapértelmezés szerint be van pipálva) azt jelenti, hogy a telepítő feltelepíti a Windows Internal Database-t, ami egy mini SQL Server. Sok megkötése van, de a célra tökéletesen megfelel, különösen egygépes környezetben.
  • A Database (ami alapértelmezés szerint nincs bepipálva) azt jelenti, hogy a telepítő egy létező SQL Serveren hozza létre a WSUS adatbázisát. Ez lehet akár másik gépen is. Ha így döntünk, akkor mindenképpen olvassuk el a WSUS database requirements részt a dokumentációban, mert rengeteg megkötés van.

A lényeg: az alapbeállítás jó, nem kell mindent bepipálni.

Újraindítás eredmény nélkül

Előfordulhat, hogy a telepítő fut egy darabig, majd azt mondja, hogy:

The request to add or remove features on the specified server failed.

The operation cannot be completed, because the server that you specified requires a restart.

The operation cannot be completed, because the server that you specified requires restart.

Persze az ember újraindítja, de utána sem lesz jobb a helyzet, lehet elölről kezdeni a WSUS telepítést, aminek ugyanez lesz az eredménye.

A megoldás – és erre különösen nehéz ráhibázni – egy kis csoportházirend módosítás. Meg kell nyitni a Group Policy Management konzolt, és módosítani kell a Default Domain Controllers Policy-t. A Computer Configuration –> Policies –> Windows Settings –> Security Settings –> Local Policies –> User Rights Assignment ágban található Log on as a service beállításnál fel kell venni az alábbi fiókokat: IIS_WPG, NETWORK, NETWORK SERVICE, SERVICE.

A házirend módosítása után természetesen a szokásos frissítés is szükséges admin parancssorból:

gpupdate /target:computer

Telepítés utáni feladatok

Miután a telepítő varázsló végigfut, találunk egy nem túl feltűnő Launch Post-Installation tasks linket, amire rá kell kattintanunk. Ez gyakorlatilag folytatja a telepítést.

Amíg el nem akad:

Configuration failed. A log file was created at C:\Users\felhasználónév\AppData\Local\Temp\tmpXXXX.tmp

wsus-post-installation

Bátran nézzünk bele a log fájlba, mert elég beszédes, és egyértelműen kiderül a probléma. Például:

Config file did not contain a value "ContentDirectory"
Microsoft.UpdateServices.Administration.CommandException: 
A required configuration value was not found in the system.

Ez azért különösen szép, mert egy olyan értéket hiányol, amit a grafikus telepítő megkérdezett, és amit természetesen meg is adtunk neki. A parancssor kedvelőinek jegyzem meg, hogy a C:\Program Files\Update Services\Tools mappában található egy wsusutil.exe segédprogram, amivel parancssorból el lehet intézni sok mindent, de itt nem segít.

Megsúgom, hogy a telepítő a C:\Windows\System32\ServerManager\ComponentConfiguration\UpdateServices-Services.xml fájlból hiányolja az értéket. Megnyitva a fájlt, ezt találjuk benne (áttördeltem az olvashatóság érdekében):

<?xml version="1.0" encoding="utf-16"?>
<INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services">
<PROPERTY NAME="ContentDirectory" TYPE="string">
</PROPERTY>
<PROPERTY NAME="ContentLocal" TYPE="boolean">
<VALUE>true</VALUE>
</PROPERTY>
</INSTANCE>

Akinek van szeme az XML-hez rögtön észreveszi, hogy a ContentDirectory érték valóban üres. Semmi gond, egészítsük ki:

<?xml version="1.0" encoding="utf-16"?>
<INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services">
<PROPERTY NAME="ContentDirectory" TYPE="string">

<VALUE>C:\WSUS</VALUE>
</PROPERTY>
<PROPERTY NAME="ContentLocal" TYPE="boolean">
<VALUE>true</VALUE>
</PROPERTY>
</INSTANCE>

Rendszergazdai jogosultságokkal indítva a Notepadet el is fogjuk tudni menteni a módosításokat. Így már tovább fut a telepítő.

Adatbázis

Nálam is tovább futott a telepítő, de nem végig. Ugyanígy készült egy naplófájl a Temp mappában, ezúttal ezzel a hibaüzenettel:

Fatal Error: SqlException (0x80131904): Invalid object name ‘SUSDB.dbo.tbSchemaVersion’.

Ez arra utal, hogy nem jó az adatbázis. A logból kiderül az is, hogy az adatbázis létezik, lehet hozzá kapcsolódni, csak épp a keresett tábla nem létezik.

Körülnéztem a C:\Windows\WID\Data mappában, ahol valóban megtaláltam a SUSDB.mdf és SUSDB_log.ldf fájlokat, tehát az adatbázis valóban megvolt, biztos egy korábbi telepítő már létrehozta. Az viszont gyanús volt, hogy ugyanúgy 2112 KB volt a mérete, mint a model.mdf fájlnak, amiből arra tippeltem, hogy ez az adatbázis bizony még szűz.

Ötlet: töröljük le az adatbázist, hátha a telepítő újra létrehozza, ezúttal jól. Érdekes módon a fájlt simán lehetett törölni, de a szolgáltatás újraindítása után a Log mappában lévő error.log fájlban egyértelműen látszott, hogy hiányolja.

Ez a módszer tehát nem jött be, korrekt módon kellene törölni az adatbázist, amihez viszont be kellene jelentkeznünk az adatbázis szerverre. Ha nem akarunk SQL Server Management Studiot telepíteni a szerverre, megcsinálhatjuk parancssorból SQLCMD-vel, ami önállóan is letölthető innen: Microsoft Command Line Utilities 11 for SQL Server

A System Requirements szekcióban megtaláljuk – vagy ha nem, akkor majd az MSI elindítása után közli velünk, – hogy ennek bizony kell az ODBC Driver 11 for SQL Server is.

A két telepítő MSI fájl letöltése önmagában sem egyszerű a szerveren lévő Internet Explorerből. Egyrészt mert a böngésző agresszívan blokkolja a felugró ablakokat, másrészt mert:

Security Alert: Your current security settings do not allow this file to be downloaded.

wsus-ie-msi-download-error

Ha a böngészővel nem akarunk harcolni, az összesen 7MB-nyi tartalmat letölthetjük másik gépen is, és átvihetjük például Remote Desktopon keresztül.

Ha már van SQLCMD, akkor jó lenne azt is tudni, hogy hol. Itt:

C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn

A kapcsolódáshoz kelleni fog egy connection string, ami WID esetén így néz ki:

np:\\.\pipe\MICROSOFT##WID\tsql\query

Én az SQLCMD-t mindig úgy használom, hogy a parancsokat fájlba írom, mert úgy a legkönnyebb újra futtatni őket. Például egy wsus.sql fájlba:

select name from sys.sysdatabases
drop database susdb
select name from sys.sysdatabases

Futtassuk le:

sqlcmd -S np:\\.\pipe\MICROSOFT##WID\tsql\query -i c:\temp\wsus.sql

Adatbázis eldobva, így már a telepítő sikeresen létrehozza, sőt a megfelelő táblákat is megalkotja benne. Elindul a WSUS Administration konzol, a konfigurációs varázsló és megy is minden szépen.

Nem maradt más hátra, mint a kliensek beállítása és az SSL konfigurálása.

 

Technorati-címkék: ,,
Advertisements

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s