Welcome to Delicate template
Header
Just another WordPress site
Header

Una etiqueta o tag es una palabra clave asignada a un dato almacenado en un repositorio. Las etiquetas son en consecuencia un tipo de metadato, pues proporcionan información que describe el dato (una imagen digital, un clip de vídeoo cualquier otro tipo de archivo informático) y que facilita su recuperación.

Fuente: Wikipedia

Echas las presentaciones, es realmente interesante el uso de TAGs en XD/XA7.x

Esta característica nos permite aplicar configuraciones especificas sobre un grupo de servidores/escritorios que tengamos definidos sobre un mismo TAG.

Imaginamos que generamos una directiva de Citrix y queremos asignar-la a un conjunto de máquinas especificas relacionadas entre ellas con un TAG específico. No son el mismo catálogo, ni del mismo tipo, pero comparten el mismo SO y con ellas ciertas configuraciones comunes.

Podemos automatizar esta configuración de forma que solo aplique a las VMs que nos interesan. Para ello podemos utilizar y jugar con los TAGs, además que nos permitan agrupar conjuntos específicos de máquinas sobre conjuntos de etiquetas.

Lo primero que haremos será definir un tag específico, y asignar-lo sobre nuestros servidores o desktops.

Por ejemplo, TAG: Win8. Este aplicará a todos mis escritorios basados en Win8 a los que aplicaremos una serie de directivas que siempre serán comunes para los mismos. Para definir el mismo, nos situamos en la consola en “Search” dónde podremos ver las VMs disponibles separadas por Desktop y Servidores.

tag1

Elegimos nuestras VMs con Win81 y editamos el TAG Win8 para ellas.

tag2

Seleccionamos Edit TAG (para modificar TAG asignados actuales) o Add Tag (para añadir un nuevo tag) y generamos el TAG.

tag3

NOTA: Cabe tener en cuenta que estos TAG nos son tenidos en cuenta en XenServer y que es es necesario los mismos para nuestro hypervisor, será necesario definir-los desde XenCenter.

Si en la selección de Columnas seleccionamos “TAG”, podremos ver los TAG asignados a nuestras VMs.

   tag5

tag6

Con esto ya tenemos unos TAGS definidos por VM. Podríamos diferencias maquinas Win8 y Win81 o Win7 y aplicar directivas y/o configuraciones según un TAG especifico.

Tras ello, es momento de aplicar la directiva por TAG. Definimos la configuración de la directiva y filtramos por Tag. Dónde podremos ver que nos aparece un listado de nuestros TAGs disponibles a los que aplicar nuestras configuraciones.

tag7

Tras ello daremos un nombre a nuestra directiva.

tag8

tag9

Problema común que nos podemos encontrar en ciertas implementaciones.

Existen pero una serie de pasos que podemos aplicar para mirar de mejorar el rendimiento de nuestro StoreFront que pueden solventar nuestros problemas de rendimiento con StoreFront.

– Deshabilitar Netbios sobre TCP.

– Habilitar Socket Pooling (En StoreFront no puede hacer-se desde consola).

SocketPooling esta des-habilitado por defecto en todo los Stores que generemos dentro de StoreFront. Para habilitar Socket Pooling, seguiremos los siguientes pasos:

• Editar fichero web.config ubicado en su respectivo Store C:\inetpub\wwwroot\Citrix\storename\

• Buscar la linea: <farmset … pooledSockets=»off» … >

• Modificar el parámetro Off por On.

– Utilizar Application Initialization en el Application Pool (Solo Windows 2012) Aplicar el procedimiento descrito en: http://support.citrix.com/article/CTX137400

– Des-habilitar la frma de verificación: Aplicar procedimiento descrito en: http://support.citrix.com/article/CTX130580

Otros Recursos

Initial Desktop Director Web Page Loading Delay: http://support.citrix.com/article/CTX130580

Web Interface 5.x Delay on First Page: http://support.citrix.com/article/CTX117273

How to Configure IIS to Optimize Receiver for Web Initial Connection: http://support.citrix.com/article/CTX137400

Enable SocketPooling: http://support.citrix.com/proddocs/topic/dws-storefront-21/dws-configure-conf-socket.html

Configuring Recycling Settings for an Application Pool: http://technet.microsoft.com/en-us/library/cc753179%28v=ws.10%29

En este post explicamos algunos de los cmdlets utilizados para la creación de un catálogo en XenDesktop  con el fin de ayudar a entender y realizar nuestras tareas de automatización del Brocker.

Una vez realizado el documento de arquitectura, elegidos y definidos los métodos de despliegue así como la definición del resto de componentes de diseño, tendremos claro que pasos seguir durante el proceso de despliegue. El proceso completo puede realizar-se claramente desde Citrix Studio, pero vamos a realizar un completo deploy desde PowerShell para que veáis como funciona y lo que podemos llegar a realizar desde el mismo.

No vamos a profundizar en el uso de PowerShell, para ello hay muchos manuales y muy bueno colgados en la red.

Empezando

Un Catálogo de máquinas es una colección de máquinas (ya sean físicas o virtuales) que podemos asignar a usuarios de nuestra organización. Podemos desplegar un catalogo basado en equipos físicos (dónde instalamos previamente nuestros agentes VDA) o realizar un deploy automatizado, utilizando servicios como MCS o PVS, desde una GoldImage previamente generada.

El primer paso, es la generación de este catalogo , para ello utilizaremos el comando “New-BrockerCatalog”.

Debemos tener en cuenta la sintaxis a utilizar, la cual se establece de la siguiente forma.

SYNTAX. Ver Aquí

Generemos el Catalogo y veamos posteriormente que hemos hecho:

NewC-BrokerCatalog –name ‘PowerShell_Catalog’ –AllocationType ‘Permanent’ -MachineArePhysical $false -ProvisioningType ‘Manual’ -SessionSupport ‘SingleSession’ –PersistUserChanges ‘OnLocal’ -AdminAdress “Localhost:80” –Description ‘Catalogo creado en PowerShell’

1

Tras la ejecución del comando, podemos ver el nuevo Catalogo generado en nuestra consola de Studio.

Ahora ya tenemos generado el catalogo, hemos indicado que tipo de maquinas incluirá y nos toca proceder a incluir-las. Recordad, que podemos obtener datos de nuestro catalogo con el comando Get-BrockerCatalog –name ‘Name_Catalog’. Aunque no todos los parámetros del catalogo son modificables y en alguos casos será necesario crear uno nuevo si deseamos otro tipo.

Veamos ahora que ocurre si generamos un Catalogo, del tipo MCS con la sintaxis anterior:

New-BrokerCatalog –name ‘PowerShell_Catalog2’ –AllocationType ‘Random’ -MachineArePhysical $false -ProvisioningType ‘MCS’ -SessionSupport ‘SingleSession’ –PersistUserChanges ‘OnLocal’ -AdminAdress “Localhost:80” –Description ‘Catalogo creado en PowerShell’

Durante el proceso de creación no obtendremos errores, pero al comprobar nuestra consola:

2

Esto es normal, debido a que hemos indicado que se genere un catalogo de tipo MCS sin indicar datos relativos a la imagen que será utilizada para el deploy.

3

Veamos como solucionar-lo. Si intentamos solucionar el problema desde la MMC, veremos que no disponemos de opciones para ello, y únicamente podremos realizar un test o borrar el catalogo para generar de nuevo.

4

Lo primero que debemos hacer, es generar un IdentityPool. Y que es esto? Los cmdlet AcctIdentityPool proporcionan la habilidad de generar pool que pueden ser almacenados como máquinas en AD. Para ello debe ser provisto de el nombre de esquema, el tipo de esquema, la OU y el dominio al que hace referencia, para que sea utilizado para el almacenaje de las nuevas cuentas.

Su sintaxis puede ser consultada Aquí.

Veamos como utilizar-lo.

New-AcctIdentityPool -AdminAddress ‘localhost:80′ -AllowUnicode -Domain ‘ctxdom.local’ -IdentityPoolName ‘Ejemplo_PowerShellVMs’ -NamingScheme ‘Maquina-####’ -NamingSchemeType ‘Numeric’

5

Ahora ya hemos definido como van a generar-se las VMs en nuestro AD y dónde.Continuemos con el proceso.

Es el momento de crear nuestros metadatos del catálogo de la siguiente forma. Este paso no es obligatorio.

Set-BrokerCatalogMetadata -AdminAddress ‘localhost:80’ -CatalogId 5 -Name ‘Citrix_Desktop_PShellCatalog’ –Value ‘1234’

El nombre por defecto suele ser: Citrix_DesktopStudio_IdentityPoolUid. El CatalogID lo podemos encontrar realizando una consulta. Tal como comentamos anteriormente, tenemos los cmdlets que empiezan con “get-“ los cuales nos permitirán obtener información. Podemos obtener el ID de nuestro catalogo de la siguiente forma:

Get-BrokerCatalog | ft Name, Uid

Donde obtendremos el listado de catálogos con su respectivo ID.

6

Opcional: Chekear Catalogo

Test-ProvSchemeNameAvailable -AdminAddress ‘Localhost:80’ -ProvisioningSchemeName @(‘Ejemplo_PowerShellVMs’)

Ahora es momento de crear el objeto de esquema para el aprovisionamiento de VMs.

Syntaxis aquí.

El proceso de creación hace una copia del disco duro conectado a una instantánea de máquina virtual y lo almacena en el lugar de almacenamiento que la unidad de alojamiento en el esquema de provisiones define . Esta es una tarea de larga y por lo general tomará un rato en completar la operación (dependiendo del tamaño del disco duro que está siendo copiado y el número de instantáneas generado ) .

Para la generación de las VMs deben utilizar-se Snapshot en lugar de la propia VM, de forma que el contenido del disco duro pueda ser determinado fácilmente.

Para este cmdlet se requiere información facilitada por el “Citrix Machine Creation Services: Hosting Unit Service Snapin”, el cual provee información relativa a los hipervisores. También toma información del Snapin de “AD Identity Service”, el cual proporciona información acerca de los IdentityPool.

El esquema de aprovisionamiento es una colección de todos los datos que son necesarios para generar una plantilla desde las cuales las VMs serán creadas. Por ello, necesitamos la siguiente información.

• Hosting Unit A definido en el HostService, así como la red y el almacenamiento definido previamente.
• Un IdentityPool definido.

Veamos un ejemplo de cración de esquema sencillo.

New-ProvScheme -CleanOnBoot -HostingUnitName HostSettings -IdentityPoolName Ejemplo_VMs_Pshell -MasterImageVM ‘XDHyp:\hostingunits\HostSettings\XenDesktop_Shared.VM\NEW UPGRADE XD7.5 VDA.snapshot’ -ProvisioningSchemeName ‘PowerShellScheme’

8

El proceso tardará un rato. Adicionalmente, podemos especificar la red a utilizar, númeor de CPUs y memoria, mediante los parámetros indicados en Syntaxis. O se puede modificar posteriormente mediante el comando Set-.

Podemos especificar el num de CPU o memoria con los parámetros –VMMemoryMB o – VMCpuCount

Cabe recalcar, que IdentityPoolName debe coincidir con el PoolName creado en el punto 2 del proceso. Así como ProvisioningSchemeName debe ser un nombre único.

9

Ahora vamos a actualizar nuestro Catalogo al cual vamos a asignar el esquema de PVS recien creado.

Set-Broker –Name PowerShell_Calago2 –ProvisioningSchemeID f75ced9b-7ef4-47a7-ad1e-22694ae190fd

Añadimos direcciones de controlador al esquema de aprovisionamiento. Esta es la lista de controladores donde las maquinas creadas pueden registrar-se . Esto solo afecta a las maquinas que sean creadas. No afectará a las maquinas ya creadas.

Add-ProvSchemeControllerAddress -AdminAddress ‘localhost:80’ -ControllerAddress @(‘Citrix1.ctxdom.local) -ProvisioningSchemeName ‘PowerShellScheme’

91

Vamos a ver como crear ahora las cuentas de nuestras VMs en AD.

New-AcctADAccount -Count 2 -IdentityPoolUid 79ae43e8-09e6-4b0f-93f6-c34ce81f73a0

Esto creara, según lo definido en el IdentityPool, dos cuentas [“Count2”] con la nomenclatura Maquina-#### que definimos anteriormente. Maquina-0001 Maquina-0002.

92

Podemos verlas en nuestra dirección AD suministrada.

93

Y ahora queda desplegar VMs. Hemos generado el GoldenImage desde un Snapshot, hemos creado las cuentas de AD, hemos generado la definición de las VMs con el esquema de PVs y ahora es momento de deployar.

New-ProvVM -ADAccountName @(‘CTXDOM\Maquina-0001$’,’CTXDOM\Maquina-0002$’) -ProvisioningSchemeName ‘ExampleMachines’ -RunAsynchronously

94

Podemos obtener el VMID ejecutando el comando “Get-ProvVM”. Ahora, bloqueamos la maquina y prevenimos posibles cambios accidentales sobre la misma.

Lock-ProvVM -ProvisioningSchemeName ‘ PowerShellScheme’ -Tag ‘Brokered’ -VMID @(‘VMID_VM’)

95

Añadimos una máquina asignada al sitio. Este paso se utiliza para fabricación de la máquina disponible para ejecutar aplicaciones y escritorios de los usuarios.

New-BrokerMachine -CatalogUid -MachineName CTXDOM\Maquina-0001′
New-BrokerMachine -CatalogUid -MachineName CTXDOM\Maquina-0002′

Detalles:

96 97

Al no definir anteriormente el parámetro CPU y MEM, toma como defecto, el valor de la VM utilizada como master.

98

Y aquí tenemos nuestras VMs en nuestro Host Hyper-V.

99

¿Y todo esto, para que?

Los administradores solemos realizar muchos procesos repetitivos diariamente. No cabe entrar en detalle  la utilidad del Scripting y sus posibilidades. Si a priori generar estos procesos puede ser algo engorroso y/o tediosos, una vez preparados nuestros correspondientes Scripts nos permitirán automatizar tareas que realizamos de forma común de forma mas ágil y rápida, reduciendo la cantidad de faena así como evitando errores en la ejecución de las tareas.

Recursos adicionales:

http://support.citrix.com/static/kc/CTX127254/help/New-BrokerCatalog.html
http://support.citrix.com/static/kc/CTX127254/help/Set-BrokerCatalog.html
http://support.citrix.com/proddocs/topic/infocenter/ic-how-to-use.html
http://support.citrix.com/static/kc/CTX127254/help/New-ProvScheme.html
http://support.citrix.com/static/kc/CTX127254/help/about_HypHostSnapin.html
http://support.citrix.com/static/kc/CTX127254/help/Get-HypConfigurationDataForItem.html
http://support.citrix.com/static/kc/CTX127254/help/Lock-ProvVM.html
http://support.citrix.com/static/kc/CTX127254/help/New-BrokerMachine.html

Cuando utilizamos personal vDisk, por defecto, se establece una reserva de 50%|50% para el uso de datos referentes a la instalación de aplicaciones, como al almacenamiento de perfil.

Podemos modificar este porcentaje de la siguiente forma:

KEY: HKEY_LOCAL_MACHINE\Software\Citrix\personal vDisk\Config

VALUE: PercentOfPvDForApps

Por defecto: 50%

Este valor, se asigna a la unidad V: mientras que se reducirá el espacio reservado para P:

Podéis encontrar información adicional extendida en este artículo de Citrix Blogs: http://blogs.citrix.com/2012/05/21/beware-the-5050-split-with-pvd/

Publicado en: ctxdom.com

Un pequeño truco que nos permitirá modificar los iconos utilizados por StoreFront en la publicación de nuestros escritorios.

Como sabéis, Citrix Storefront es un Frontend Web que nos posibilita el acceso a nuestra plataforma Citrix. Para los entornos XenDesktop, los iconos específicos para Escritorios publicados siempre son los mismos.  Ello no es problema alguno, pero podríamos mejorar la experiencia y/o la «amigabilidad» proporcionando un Icono especifico diferente para cada Catalogo de Escritorios disponibles, asignando por ejemplo, un icono de Win7 a los Escritorios de Win7, un icono de Win8 o aquello que nos pase por la cabeza en ese momento (quizás algunos les guste poner iconos de StarWars… vete a saber… a mi me mola :D).

Y como lo hacemos? Vamos a valer-nos en este caso, de Google, Gimp y nuestro amado PowerShell.

Lo primero que haremos será buscar un icono chulo para nuestro Desktop. Cabe indicar que tenemos que ser conscientes de las medidas de nuestro icono. Estas son:

* 256 x 256 px

* 32 bits color

Lo primero, buscar un logo chulo en Google. (recuerda usar logos cuya licencia de uso te permita utilizar-lo). Una vez dispongamos del mismo, vamos a ponernos con Gimp.

Abrimos nuestra imagen que utilizaremos con Gimp y utilizamos la opción de «Resize» para adaptar el tamaño de nuestro Logo.

Captura de pantalla 2014-03-26 a la(s) 14.50.52   Captura de pantalla 2014-03-26 a la(s) 14.50.56

Con esto, ya tenemos casi la mitad del trabajo echo. Para mi gusto, queda un toque mas para hacer-lo mas pro y es dotar a nuestro icono de transparencia. Para ello, voy a convertir los blancos en Alpha de cara que sean transparentes en la generación del icono.

Captura de pantalla 2014-03-26 a la(s) 14.46.31

Una vez, convertido, solo nos queda exportar a .ICO junto a un color de 32Bits. Para ello, realizamos el proceso de exportación desde GIMP (Guardar como… no permite guardar como ICO con lo que será necesario hacer un export).

Captura de pantalla 2014-03-26 a la(s) 14.47.30Captura de pantalla 2014-03-26 a la(s) 14.47.43

Captura de pantalla 2014-03-26 a la(s) 14.48.09

Finalizado el proceso, aquí vemos tanto la imagen PNG inicial como nuestro nuevo ICO con transparencias que hará de ICONO.

Captura de pantalla 2014-03-26 a la(s) 14.48.26

Llegado a este punto, es momento de realizar la carga de nuestro icono. Para ello copiamos el mismo a nuestro Broker de XenDesktop, y abrimos nuestra consola de PowerShell.

Como Requerimiento, necesitamos saber a que DesktopGroup asignaremos nuestro nuevo ICONO, una vez dispongamos del nombre procedemos al cambio de icono. Primero cargamos el mismo en nuestro broker con el siguiente comando.

Captura de pantalla 2014-03-26 a la(s) 14.54.20

Este cargará el icono a nuestro entorno y nos proporcionara una salida con el nombre codificado del icono y con un UUID del mismo. Sobretodo ahora me importa este UID, puesto que en el siguiente comando haremos referencia a él.

Vamos a proceder a asignar este icono a nuestro DesktopGroup utilizando el UiD anterior con el siguiente comando.

Captura de pantalla 2014-03-26 a la(s) 14.57.01

Una vez realizado esto, ya podemos logar con nuestro StoreFront y obtener algo parecido a esto:

Captura de pantalla 2014-03-26 a la(s) 14.58.39

(ctxdom.com) Tal y como se explica en el manual de XenDesktop, por defecto, solo el 10% de escritorios esta levantado en horario pico en los Escritorio sin uso.

http://support.citrix.com/proddocs/topic/xendesktop-rho/cds-control-power-management-rho.html

Esto puede suponer un problema (o no) y en caso de necesitar modificar-lo, como conprovareis, no disponeis de forma desde la GUI para realizar la modificación especifica. Así como lo hacemos? Vayamos a nuestro querido PowerShell.

Disponemos de dos características dentro del objeto de Catalogo que permiten la configuracion y comportamiento sobre el uso y administrador de Energia en XenDesktop.

El OffPeakBufferSizePercent y el PeakBufferSizePercent. Por defecto, ambos valores estan a 10%.

10% OffPeakBufferSizePercent: En los umbrales definidos como “fuera de horario pico” se establece que se deberá disponer de un 10% del total de escritorios del catalogo en estado “Running”.

10% PeakBufferSizePercent: En los umbrales definidos como “horario pico” se establece que se deberá disponer de un 10% del total de escritorios del catalogo en estado “Running”.

Para comprobar el estado de nuestro umbrales, podemos hacer uso del CMDLET:

Get-BrokerDesktopGroup -Name ‘CATALOG NAME’

Ello nos mostrará todos los objetos definidos en nuestro catalogo y su correspondiente valor.  Podemos observar estas dos propiedades en el listado obtenido. Estas pueden ser modificadas de la siguiente forma (sin incluir %):

Set-BrokerDesktopGroup -Name ‘CATALOG NAME’ –OffPeakBufferSizePercent %NUM

Set-BrokerDesktopGroup -Name ‘CATALOG NAME’ –PeakBufferSizePercent %NUM

Adicionalmente, es importante tener en cuenta que hacen los Escritorios, tras la desconexion de los usuarios, o como actuan cada cierto tiempo en des-uso, tal y como vimos anteriormente en http://goo.gl/eiMVO0

Recursos:

XenDesktop eDocs Power Management: http://support.citrix.com/proddocs/topic/xendesktop-rho/cds-control-power-management-rho.html

XenDesktop eDocs SDK cmdlets: http://support.citrix.com/proddocs/topic/xendesktop-7/cds-sdk-cmdlet-help.html

XenDesktop eDocs SDK cmdlets About Brocker PowerManagement: http://support.citrix.com/proddocs/topic/citrix-broker-admin-v2-xd7/about_broker_powermanagement-xd7.html

 CTXDOM.COM Spanish Citrix Community: http://www.ctxdom.com