Vor kurzem hatte ich mich per Remote Desktop auf eine Windows Azure Instanze eines “Cloud Projektes” verbunden und wurde überrascht: Es war ein Windows Server 2008 – und hatte mich prompt mit der Meldung begrüsst, dass ich doch bitte das Windows aktivieren sollte (?).
Warum läuft eine alte Windows Version auf Azure – sollte es nicht immer das aktuellste sein?
Eigentlich hatte ich dies auch gedacht, allerdings wird die Cloud Applikation nicht automatisch auf eine neue Windows Version installiert – dies muss man in der Cloud Service Configuration File (.cscfg) festlegen.
<ServiceConfiguration serviceName="<service-name>" osFamily="[1|2|3]" osVersion="<os-version>" schemaVersion="<schema-version>"> <Role …> … </Role> <NetworkConfiguration> … </NetworkConfiguration> </ServiceConfiguration>
Wichtig hierbei:
osFamily: Dies gibt die Windows Version an, wobei 1 für Windows Server 2008 steht, 2 für Windows Server 2008 R2 und seit neustem gibts 3 für Windows Server 2012.
osVersion: Dies sind bestimmte Patches und Updates die eingespielt werden. Empfehlenswerter Wert ist “*” – damit wird ein Windows mit den letzten Patches genommen.
osFamily=”*” für die neuste Windows Version?
Dies liegt zwar nah – funktioniert aber nicht:
Upgrade von der osFamily?
Falls man einen Service, welcher aktuell auf Windows Server 2008 R2 läuft, auf Windows Server 2012 updaten möchte, bekommt eine Fehlermeldung, da dies aktuell nicht vorgesehen ist. Man muss also den Service komplett neu ausrollen.
Was passiert wenn man weder osFamily noch osVersion angibt?
Beide Werte sind optional. Im moment wird osFamily=”1” und osVersion=”*” gesetzt – dies führt auch zu dem Windows aktivieren Screenshot – ich nehm an Microsoft wird mit der Zeit die Defaults ändern.
Fazit
Wer jetzt ein Windows Server 2012 nutzen möchte, muss die osFamily auf den Wert “3” stellen. Ansonsten würde ich den osVersion Wert immer auf “*” stellen.