Application Virtualization (App-V)

App-V on työasemasovellusten virtuaalisointi työkalu ja jakelujärjestelmä. Käytännössä tämä tarkoittaa sovelluksen irrottamista omaksi ”kuplakseen” jolloin sovellus on erotettu erilleen käyttöjärjestelmästä ja muista työasemassa ajettavista sovelluksista. Teknisesti tämä tarkoittaa sitä että sovellusta ei tarvitse perinteisessä mielessä asentaa työasemaan. Vaan ohjelman "asentaminen" on verrattavissa word dokumentin avaamiseen verkosta. Tosin järjestelmä toteuttaa tämän kaiken loppukäyttäjän puolesta. Jolloin oikein toteutettuna loppukäyttäjä ei erota käyttääkö hän ”perinteistä” sovellusta vai virtuaalista sovellusta.
Kun sovellus on omassa ”kuplassaan” tuo se mahdollisuuksia myös ohjelmistojakeluun. Koska käyttöjärjestelmän merkitys vähenee voidaan sovellukset kohdistaa käyttäjiin työasemien sijasta.

Managment serverin asennus

Ennen varsinaisen palvelimen asennusta tarvitset SQL palvelimen. Palvelimeksi käy express versio mutta se ei ole virallisesti tuettu. Esimerkiksi tietokannan siivous toiminto ei toimi expressissä. Oikeassa SQL serverissäkin pitää sql server agent service olla päällä jotta siivous toimisi. APP-Veen asennus ajattelee lähtökohtaisesti että palvelun asennukseen käytettävällä käyttäjällä on ylläpitäjäoikeudet SQL palvelimeen. Jos syystä tai toisesta et voi/saa näitä oikeuksia käyttää, voi tietokannan luoda valmiiksi asennusta varten. Tämän ohjeen mukaisen tietokannan luonnin jälkeen et tarvitse ylläpito oikeuksia SQL palvelimeen.
Luo AD:hen kaksi security grouppia (global). Toinen ryhmä on app-v:een ylläpitoryhmä (esim appv admins). Ja toinen app-v:een oletus ohjelmistojakeluryhmä (esim app-v users).
Managment server vaatii IIS roolin. IISin oletus featureiden lisäksi asenna seuraavat osat: ASP.NET, Windows Authentication ja management tools kaikkine lisäosineen (windows 2008 server). Asennus onnistuu samalla tavalla myös 2008 R2 serveriin, mutta managementin asennus paketti pitää olla tasoa SP1.

Aloita serverin asennus.

appv03.jpgappv04.jpgappv05.jpgappv06.jpg

Määrittele sql palvelin. Kuvassa valitaan svr2 kone sql serveriksi.
appv07.jpg

Luo uusi tietokanta. Jos olet pystyttämässä uutta palvelinta olemassa olevaan ympäristöön valitse käytössä oleva tietokanta.
Huom! Uutta tietokantaa luotaessa pitää asennukseen käytettävällä käyttäjällä olla ylläpitäjänoikeudet SQL palvelimeen.
appv08.jpg

Jos haluat salata liikenteen käytä sertifikaattia.
appv09.jpg

Määrittele liikennöinti portti, valitse oletus.
appv10.jpg

Valitse ylläpitoryhmä.
appv11.jpg

Valitse käyttäjäryhmä.
appv12.jpg

Määrittele Content kansion sijainti (oletus: C:\Program Files\Microsoft System Center App Virt Management Server\App Virt Management Server\content) Täältä jaellaan virtuaalisoidut ohjelmistot.
HUOM! Asennuksen jälkeen jaa content kansio verkkoon (read oikeudet riittävät).
appv13.jpg

Suorita asennus loppuun ja uudelleen käynnistä palvelin.

appv14.jpg
appv15.jpg

Avaa application virtualization managment console. Valitse connect to application virtualization system.
appv16.jpg
Määrittele managment palvelin johon haluat ottaa yhteyttä. Jotta yhteydenotto onnistuu pitää käytössä oleva käyttäjätunnuksen kuulua app-v:een admin ryhmään.
appv17.jpg

Kun yhteys on avattu valitse system options.

appv18.jpg

Määrittele content kansion UNC polku.
Miksi näin? Kun app-v:eelle paketoidaan ohjelma määritellään sille oletus content unc polku. Tämä toiminto osaa korvata paketin määrityksen. Näin ollen samoja app-v:ee pakettaja voi käyttää monessa eri ympäristössä. Ilman ylimääristä pakettien muokkausta.
appv19.jpg

Palvelimen palomuuriin pitää kahdelle ohjelmalle tehdä aukot. Ne ovat sghwdsptr.exe ja sghwsvr.exe (C:\Program Files\Microsoft System Center App Virt Management Server\App Virt Management Server\bin).

Managment palvelimen päivitys SP1 versioon

Yllä asennettiin 4.5 versio. Joten asennetaan toiminnassa olevaan järjestelmään SP1 päivitys. SP1 version uusista ominaisuuksista voi lukea vaikka täältä.

Aloita päivitys käynnistämällä uuden version asennuspaketti.

appvsp101.jpgappvsp102.jpg

Päivitys estää clienttien yhteydenotot palveluun. Lisäksi aktiivisena olevat sessiot saattavat katketa.

appvsp103.jpg

Seuraavaksi ilmoitus käytettävästä sql palvelimesta ja tietokannasta (varmista että tiedot ovat oikeat). Päivitys muuttaa tietokannan asetuksia jos sille on tarvetta. Tästä voidaan päätellä että päivityksen suorittavalla tunnuksella pitää olla riittävät oikeudet tietokantaan (esim app-v ylläpitoryhmän jäsen).

appvsp104.jpgappvsp105.jpgappvsp106.jpg

Jos ennen asennuksen aloittamista olisi manuaalisesti pysäyttänyt app-veen servicen olisi mahdollisesti tältä uudelleen käynnistykseltä vältytty.
appvsp107.jpg

Valmista, ei muuta kuin uudelleen käynnistystä.
appvsp108.jpg

appvsp109.jpg

4.5 version clientit ymmärtävät SP1 tason palvelinta, lisäksi myös vanhat paketit toimivat. Hirveätä päivitys painetta ei heti tule muille osa-alueille.

Päivitys SP2 versioon.

Päivitys on saatavilla windows updatesta ja ladattavissa erillisenä pakettina. Tietoja uudistuksista löytyy täältä.
Tätä kirjoittaessa ainakin omissa testeissä windows updaten kautta asennus pysähtyy virheeseen 80070643. Erikseen ladattava paketti asentuu kunhan sammuttaa manuaalisesti ensin The Application Virtualization Management Server palvelun. Päivityksen asennusksen jälkeen palvelin pitää uudelleen käynnistää.

Vikasietoisempi ympäristö

App-v ympäristö on hyvin riippuvainen palvelimesta. Joten sen vikasietoiseksi tekeminen ei ole pöllömpi idea.
Ensimmäinen toimenpide voisi olla toisen palvelimen perustaminen. Toisen palvelimen pystyttäminen seurailee samaa kaavaa kuin ensimmäisen. SQL kantaa valittaessa valitse olemassa oleva tietokanta. Tällöin kaikki asetukset tulevat voimaan myös uudessa palvelimessa ja jatkossa ei ole väliä kumpaan palvelimeen muutokset tekee koska kumpikin palvelin lukee samaa tietokantaa (SQL kanta kannattaa siis todellakin varmuuskopioida).

Kummallakin palvelimella on kuitenkin oma content hakemisto (tai voit tietysti käyttää erillistä levypalvelua jota kumpikin palvelin käyttää content hakemistonaan). Content kansioiden päivittämiseen keskenään voi käyttää esimerkiksi DFS Tiedosto replikointia. Kunhan system optionsissa on määritelty contentin sijainti ei paketteja tarvitse erikseen muokkailla.
Nyt clientit pitää määritellä käyttämään jompaa kumpaa palvelinta. Eli jos palvelin hajoaa pitää niiden clienttien asetuksia muokata jotka ovat yhteydessä hajonneeseen palvelimeen. Ja minkäänlaista automaattista kuorman tasausta ei ole.

Näihin ongelmiin ratkaisuna voi käyttää load balanceria, esimerkiksi microsoftin NLB. NLB:ssä clientit ottavat yhteyttä yhteen osoitteeseen ja NLB jakaa liikenteen tasaisesti toiminnassa olevien palvelinten kesken. Pitää myös muistaa että contentin sijainti yms pitää esittää clienteille NLB:n osoitteeseen (esimerkiksi osd tiedostossa pitää olla määritelty NLB:n osoite palvelimen sijaan). Lisäksi Vistaa vanhemmat käyttöjärjestelmät eivät ymmärrä UNC poluissa NLB:n DNS nimeä. Näissä tilanteissa on siis polku esitettävä IP-osoitteella.

Seuraavaksi ongelmaksi muodostuu hitaan wan yhteyden takana olevat palvelun käyttäjät. Tällöin kannattaa etätoimipisteeseen perustaa oma management palvelin. Joka lisätään saman NLB:n alle ja contentin replikointi hoidetaan DFS replikoinnilla. Lisäksi replikointi ryhmä julkaistaan domain based DFS namespacena. Namespace osaa tarjoilla palvelimen AD:n sitejen mukaan, jolloin client ottaa yhteyttä oman sitensä palvelimen content jakoon. Tässä tilanteessa client ottaa yhteyttä NLB osoitteeseen ja managementissä OSD:n ja iconien polku on namespacella julkaistu content. Luonnollisesti tämä vaatii että AD:eeseen on luotu Site rakenne tietoliikenne rajoituksien mukaan.

Sequencer

Seqenceriä käytetään virtuaaliohjelmien luomiseen. Työasema johon sequencer asennetaan tulisi olla mahdollisimman puhdas (pelkkä käyttöjärjestelmä ilman yhtään mitään ohjelmia asennettuna). Pakettia luotaessa järjestelmä olettaa mallikoneelta löytyvien tiedostojen yms löytyvän myös ympäristöstä johon se levitetään. Jos mallikoneessa on jokin dll tiedosto jota ohjelma tarvitsee ei sitä sisällytetä virtuaalipakettiin jolloin tämä dll pitää löytyä jokaiselta työasemalta jossa ohjelmaa käytetään. Jos taas dll tulee koneelle paketointi vaiheessa otetaan se mukaan virtuaalipakettiin ja näin ollen kohde koneilla sitä ei tarvitse olla.
Lisäksi mallikoneessa pitää olla toinen levyosio asema kirjaimella Q (asema kirjain voi olla mikä vain, Q on oletus valinta). Työasemissa virtuaaliohjelmat ajetaan Q asemalta jolloin pakettia luodessa pitää ne asentaa Q asemalle.
Virtuaalikone on oiva valinta sequenceriksi.

Paketin luonti

Ennen paketoinnin aloittamista kopioi mallikoneelle tarvittavat asennustiedostot ja mahdollisesti pakatut asennus paketit kannattaa purkaa.
Luo Q asemalle kansio johon ohjelma asennetaan. Koska virtuaalisia ohjelmia voi olla kymmeniä tai satoja kannattaa nimetä asennus kansio säännöllä 8+3 (kahdeksa.001) tällöin vältetään mahdollisimman pitkään ettei vahingossa kahdelle ohjelmalle tule samaa kansio nimeä.
Käynnistä application virtualization sequencer. Valitse tools -> sequencing wizard.

ScreenShot001.jpg

Anna paketille kuvaava nimi.

ScreenShot002.jpg

Paina begin monitorin
ScreenShot003.jpg
Määrittele kansio johon ohjelma tullaan asentamaan.
ScreenShot004.jpg

Odota hetki että sequencer häviää ruudulta. Aloita ohjelman asennus normaalisti. MUISTA määritellä asennus kansioksi Q asemalla oleva kansio. Jos asennusohjelma haluaa käynnistää koneen uudestaan tee se (kone ei oikeasti buuttaa tällöin mutta sequencer osaa käsitellä sen silloin oikein). Lopuksi määrittele ohjelmalle haluamasi asetukset. Kun kaikki on kunnossa paina stop monitoring.

ScreenShot005.jpg

Jos haluat lisätä pakettiin tiedostoja.

ScreenShot007.jpg

Muokkaa tarvittaessa tiedosto assosioita ja pikakuvakkeita.

ScreenShot008.jpg

Seuraavssa vaiheessa käynnistä ohjelma painamalla launch. Tämän perusteella virtuaalipaketti jaetaan kahteen osaan. Ensimmäinen osa sisältää tiedostot jotka tarvitaan ohjelman käynnistymiseen. Ja loput jälkimmäiseen osaan. Tällöin kun ohjelma avataan työasemassa streamaa se ensimmäisen osan ja käynnistää ohjelman, loppu osan streamautuessa taustalla ja ohjelmaa voi jo käyttää.

ScreenShot009.jpg

Lopulta paketointi on valmis,

ScreenShot010.jpg

Määrittele deployment välilehdellä protocol, hostname ja path sekä käyttöjärjestelmät jolle ohjelmaa tarjoillaan. Jos haluat luoda SCCM:llä levitettävän MSI paketin laita täppä kohtaan generate microsoft windows installer packege.

ScreenShot011.jpg

Lopuksi tallenna ja paketti on valmis levitettäväksi.

ScreenShot012.jpg

Paketin päivittäminen

Kopioi käytössä oleva app-v paketti sequencer koneelle. Avaa sequencer ja valitse open for upgrade.

ScreenShot013.jpg

Valitse päivitettävän paketin sprj tiedosto.

upgrade01.jpg

Määritä mihin paketti puretaan. Valitse Q asema

upgrade02.jpg

Tee halutut muutokset ja paina save.

upgrade03.jpg

Kun tallennus on valmis kopioi tidostot content jakoon (ja korvaa vanhat tiedostot).

Paketin julkaisu

Kopioi paketti content kansioon.

julkaise01.jpg

Muista että kansiorakenne pitää olla paketoidessa määritellyn path arvon mukainen. Jos et muista polkua voit tarkistaa sen avaamalla notepadilla osd tiedoston ja katsomalla codebase rivin href arvon.

julkaise02.jpg

Managment consolessa valitse application ja import applications.

julkaise03.jpg

Valitse paketin sprj tiedosto.

julkaise04.jpg

Tarkista että asetukset ovat oikein.

julkaise05.jpg

Määrittele miten ohjelman pikakuvakkeet näkyvät käyttäjälle.

julkaise06.jpg

Määrittele tiedosto assosisaatiot.

julkaise07.jpg

Määrittele ryhmä jolle ohjelma julkaistaan.

julkaise08.jpg

Tee viimeiset varmistukset ja paina finish.

julkaise09.jpg

Päivityksen julkaisu

Packages haarassa valitse päivitettävä paketti ja valitse add version.

paivita.jpg

valitse content jaossa oleva päivitetty paketin sft tiedosto (oletuksena perässä _2 jne).

lise10.jpg

Määrittele relatiivinen polku pakettiin "kansio/paketti.sft" (Relatiivinen polku merkitsee rakennetta content kansion jälkeen).
Huom! SP2 päivityksen jälkeen osaa järjestelmä paketin näyttämisen perusteella ehdottaa tätä, lisäksi muoto "kansio\paketti.sft" on toimiva.

lise13.jpg

Paina Finish ja päivitys on tarjolla. Seuraavan kerran kun käyttäjä käynnistää päivitetyn ohjelman päivittyy se automaattisesti (Vain muuttuneet osat ladataan työasemalle).

lise12.jpg

Provider policies

Provider policiesin avulla voit ohjailla clienttien käyttäytymistä, kohdentamalla ne AD:n security grouppeihin. Oletuksena App-veen asennus luo default provider nimisen policyn, joka kohdistuu ryhmään joka asennuksen yhteydessä valittiin provider ryhmäksi. Huom! Jos käyttäjään ei kohdistu provider policyä hän ei saa mitään app-veen palveluja.

Tarkastellaan default provider policya. Mene provider policies ja avaa default providerin properties.
General välilehdellä hallitaan kuinka käyttäjän ohjelmistoja päivitetään. Oletuksena tieto päivittyy jokaisen sisäänkirjautumisen yhteydessä. Lisäksi voit määritellä aikavälejä päivän, tunnin ja minuutin tarkkuudella.
provider1.jpg

Group assigmentissä voit lisätä ja poistaa ryhmiä joihin sääntö kohdistuu.

provider2.jpg

Provider pipelinessä käsitellään kuinka käyttäjän pitää autentikoitua jotta hän saa resurssit käyttöön. Lisäksi login keräämisen voi poistaa. Sekä mahdollisia lisenssi sääntöjä voi ohittaa tai pakottaa.

provider3.jpg

Ohjelmistolisenssit

Kaikkiin ohjelmiin ei ole saatavilla lisenssien hallinnointi työkalua ja app-v ympäristössä se on lähes pakollinen kun perinteisillä tavoilla ei voida hallita ohjelman käyttöä.
Lisenssejä on kolme erillaista unlimited (tarkoitettu ohjelman käytön seurantaan), concurrent (rajoittaa yhtäaikaisten käyttäjien määrää) ja named (käyttäjäkohtainen).

Tehdään yksi concurrent lisenssi. Valitse application licenses ja new concurrent license.

lisenssi01.jpg

Nimeä lisenssi ja määrittele koska käyttäjille ilmoitetaan lisenssin loppumisesta.

lisenssi02.jpg

Määrittele yhtäaikaisten käyttäjien määrä ja lisenssin päättymisajankohta.

lisenssi03.jpg

Ota lisenssi käyttöön ohjelman propertiesin general välilehdellä.

lisenssi04.jpg

Jotta lisenssit olisivat voimassa pitää ne aktivoida provider policyssä. Suositus on että default policyssä ei tätä tehtäisi vaan sitä varten luodaan erillinen policy. Aloita luomalla new provider policy.

lise01.jpg

Nimeä policy kuvaavasti.

lise02.jpg

Määrittele keihin vaikuttaa.

lise03.jpg

Lisää täppä kohtaan licensing ja valitse enforce license policies. Jotta policy tulee voimaan pitää managment service käynnistää uudestaan.

lise04.jpg

Ainakun haluat jossakin ohjelmassa käyttää lisenssejä pitää sen .OSD tiedostoon lisätä allaoleva teksti kuvan mukaiseen paikkaan.

?Customer=policynnimi
lise06.jpg

App-V clientin asennus työasemaan

Jotta virtuaalisia ohjelmia voi käyttää työasemilla pitää niihin asentaa app-v:ee client.
Client vaatii toimiakseen Microsoft Visual C++ 2005 SP1 Redistributable Package ja microsoft application error reporting ohjelmat. Voit asentaa keskitetysti clientin msi pakettina (tällöin visual c++ ja error reporting pitää levittää erikseen). Toisena tapana on asentaa vaikka startup scriptissä setup.exe silenttinä (tällöin asentuvat tarpeen mukaan myös visual c++ ja error reporting).
Clienttien asetuksia pitää pystyä myös hallitsemaan keskitetysti. Microsoft on tehnyt tätä varten ADM templaten, mutta siitä puuttuu oleellisia asetuksia. Login consultant on tehnyt parannellun version app-v:een ADM templatesta, templaten voi ladata ilmaiseksi login consultantin sivuilta http://www.loginconsultants.com. Käytä tarpeen mukaan XP:n ja Vistan templateja ja lisää ne computer configurationin administrative templates haaraan. Clientin toimivuuden kannalta oleellisin asetus on server settings policy jolla määritellään miten ja mihin managment palvelimeen client on yhteydessä.

appvgpo1.jpg

App-V palvelimen käyttö useammassa eri AD domainissa

Kun App-V palvelua halutaan käyttää useammassa domainissa pitää seuraavat asiat olla kunnossa:
1. Domain jossa managment palvelu on ja domain jossa palvelua halutaan käyttää. Näiden välillä pitää olla kaksi suuntaiset luottosuhteet.
2. Lisää käytettäviin provider policyihin käyttöönotettavasta domainista ryhmä jolle haluat antaa oikeuden käyttää palvelua. Toista sama toimenpide ohjelmien suhteen joita haluat tarjota.

SQL tietokanta ja APP-V

Tässä hieman huomioitavia asioita SQL:n suhteen, lisäksi hallintaa ja nippeli tietoa.

1. Jotta APP-V managment palvelimen asennus onnistuu. Pitää asennukseen käytettävällä tunnuksella olla ylläpitäjän oikeudet SQL palvelimeen. Kanta voidaan myös luoda valmiiksi jolloin managementin asennuksessa ei tarvita ylläpito oikeuksia SQL palvelimeen (ohje).
2. Kun uusi tietokanta syntyy asennuksen yhteydessä saa administrator groupiksi määritelty ryhmä user oikeudet tietokantaan.
3. APP-V osaa siivota automaattisesti määritysten mukaan vanhoja tietoja tietokannasta. SQL palvelimessa pitää kuitenkin olla SQL server agent päällä.
4. Tietokannan kokoa ja käyttöhistorian siivousväliä voi hallinnoida APP-V Managment consolista. Asetuksiin pääsee system options -> database.

appvsql.jpg

sft-server.log

App-V management palvelin tekee lokia toimistaan. Esimerkiksi vian selvityksessä tämä on hyvin hyödyllinen. Loki sijaitsee palvelimella C:\Program Files\Microsoft System Center App Virt Management Server\App Virt Management Server\logs\sft-server.log
Oletus asetuksilla lokiin ei kirjoiteta kaikkea. Vikatilanteissa saatetaan tarvita hyvinkin tarkkaa tietoa. Lokitettavan tiedon tasoa voi säätää muokkaamalla rekisteriä.

Avaa regedit ja mene HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Server
Muokkaa SOFTGRID_LOG_LEVEL avaimen arvo haluamaksesi (oletusarvo 3).
reglog.jpg

Numero arvot merkitsevät seuraavaa:
0: Transactions
1: Fatal Errors
2: Errors
3: Warnings
4: Informational
5: Debug (Verbose)

Jotta muutos tulee voimaan pitää uudelleen käynnistää Application Virtualization Management Server palvelu.
reglog03.jpg

Ongelmia

Application virtualization managment server service ei käynnisty

Testi ympäristössä sql serveri ja managment serveri oli asennettu samaan koneeseen. Ongelmaksi muotoutui se että koneen käynnistyksen jälkeen piti managment service käydä käynnistämässä manuaalisesti, vaikka määrityksenä servicellä oli automatic.
Pienen tutkinnan jälkeen löytyi eventeistä kaksi virhettä. Event 41494 ja 44901. Ongelman syynä on siis se että app-v ei saanut yhteyttä tietokantaansa. Lisätutkimuksessa havaitsin sql:n servicien käynnistyvän vasta app-v:een servicen käynnistys yrityksen jälkeen.

lise07.jpg

Ratkaisuna muutin servicen startup typen "automatic (delayed start)" tilaan. Tällöin Service odottaa että kaikki muut automatic tilassa olevat servicet käynnistyvät ja aloittaa vasta sitten itsensä käynnistämisen.

lise08.jpg

Jatkuvasti kaatuileva management console

Ylläpitämääni ympäristöön ilmestyi yhtäkkiä omituinen ongelma. App-V:n management console kaatuili tuhottoman usein. Aluksi syytin yhteyttä sql tietokantaan. Mutta lopulta havaitsin että kaatuminen tapahtui yleensä vaiheessa kun sovellusten pikakuvakkeita avautui consolessa. Niinpä löysin seuraavan artikkelin. Console siis saattaa kaatua jos järjestelmässä on yli tuhat ikonia ja palvelimessa yli 2gb muistia. Korjasin ongelman muokkaamalla rekkaria lisäämällä seuraavan dword arvon palvelimeen. Tämän jälkeen hienot ikonit eivät lataudu consoleen, mutta ehkäpä työskentelyä helpottaa enemmän consolin pystyssä pysyminen:)

HKLM\Software\Microsoft\SoftGrid\4.5\Management Console\LoadConsoleIcons=0
page_revision: 202, last_edited: 1277897205|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NoDerivs 3.0 License