App Layering

Création de modèles ARM

Cette section est destinée aux utilisateurs familiarisés avec les modèles ARM. Il fournit des informations détaillées sur la création de modèles pour le connecteur App Layering Azure Deployments. Pour obtenir des informations générales sur la création de modèles ARM, consultez la documentation Microsoft.

Entrée

Un paramètre, un objet nommé, est transmis à chaque type de déploiement al. Cet objet possède deux propriétés, input et context. La propriété input est un objet spécifique à chaque type de déploiement et ses propriétés changent en fonction du type de déploiement. La propriété context est la même pour tous les types de déploiement. Il contient des données sur la tâche App Layering, l’élément (modèle de couche ou d’image) et la configuration du connecteur associés au déploiement actuel. Pour des informations détaillées sur l’objet paramètre, consultez le paramètre du modèle Azure Deployments.

Chaque modèle doit déclarer le al paramètre dans sa section de paramètres, comme suit :

{
    ...
    "parameters": {
        "al": {
            "type": "object"
        }
    },
    ...
}
<!--NeedCopy-->

Un modèle peut déclarer davantage de paramètres, mais les paramètres doivent tous avoir des valeurs par défaut. Sinon, App Layering ne leur apporte aucune valeur. Cela peut être utile pour utiliser des fonctions qui ne peuvent être utilisées que dans la section de valeur par défaut d’un paramètre, par exemple utcNow.

Sortie

Tous les modèles ARM peuvent avoir des sorties. Avec le connecteur Azure Deployments, les sorties des modèles peuvent être utilisées pour transmettre des informations au déploiement suivant. Ils peuvent également être utilisés pour remplacer certains comportements par défaut.

Les sorties d’un déploiement sont transmises au déploiement suivant à l’aide de la input propriété du al paramètre de modèle.

Par exemple, lorsqu’un déploiement de disque cache possède les sorties suivantes :

{
    ...
    "outputs": {
        "generation": {
            "type": "string",
            "value": "[variables('generation')]"
        },
        "name": {
            "type": "string",
            "value": "[variables('name')]"
        },
    }
    ...
}
<!--NeedCopy-->

Le déploiement de Boot Image reçoit cette entrée :

{
  "input":
  {
    "type": "BootImage",
    "source": {
        "generation": "V2",
        "name": "MyCoolDiskName"
    }
  },
  "context": {
    ...
  }
}
<!--NeedCopy-->

Notez que la propriété source de l’objet input possède une propriété pour chaque sortie spécifiée par le modèle de déploiement de disque cache. L’origine de chaque sortie dépend du type de déploiement.

Détails du type de déploiement

Chaque type de déploiement possède un ensemble différent d’entrées et de sorties qui peuvent modifier le comportement de l’opération App Layering. Ces détails spécifiques au déploiement sont décrits dans cette section.

Pour des exemples concrets utilisant tous ces concepts, consultez la section Modèles de démarrage.

Disque cache

Le déploiement du disque cache doit créer une ressource de disque gérée. Vous pouvez éventuellement créer d’autres ressources en plus du disque. L’appliance App Layering doit être autorisée à écrire sur le disque à l’aide d’un jeton SAS (généré par l’appliance). Une image de démarrage contenant le moteur de composition App Layering est chargée sur le disque après sa création.

Exigences relatives au disque cache

  • Vous devez créer une ressource de disque gérée
  • Les disques gérés createOption doivent être définis sur "Upload"
  • Les disques gérés uploadSizeBytes doivent être définis sur la valeur uploadSize spécifiée par l’entrée, par exemple "[parameters('al').input.uploadSize]"
  • L’appliance App Layering doit être capable d’écrire sur le disque géré à l’aide d’un jeton SAS
{
    ...
    "resources": [
        {
            "type": "Microsoft.Compute/disks",
            ...
            "properties": {
                ...
                "creationData": {
                    "createOption": "Upload",
                    "uploadSizeBytes": "[parameters('al').input.uploadSize]"
                }
                ...
            }
        }
    ]
    ...
}
<!--NeedCopy-->

Entrée sur disque cache

L’objet d’entrée inclut les propriétés size et uploadSize. Cet objet n’inclut pas la sortie d’un autre déploiement.

Sortie du disque cache

La sortie du déploiement est transmise au déploiement Boot Image s’il est spécifié. Dans le cas contraire, il est transmis au déploiement de la machine .

Une sortie nommée diskId peut être spécifiée pour indiquer explicitement à App Layering quel disque utiliser. Si aucune diskId sortie n’est spécifiée, App Layering en ajoute une automatiquement et la définit sur l’ID de ressource de la première ressource de disque gérée créée par le déploiement. L’image de diskId démarrage du moteur de composition App Layering est chargée sur le disque spécifié par.

Image de démarrage

Ce déploiement crée une ressource à partir du disque géré créé par le déploiement du disque cache . Il n’y a pas d’exigences strictes quant au type de ressources créées. Toutefois, il doit créer une ressource pouvant être utilisée comme source d’un disque de système d’exploitation lors de la création d’une machine virtuelle, telle qu’une version d’image de galerie de calcul.

Exigences relatives au disque Boot Image

  • Vous devez créer une ressource pouvant être utilisée pour créer le disque du système d’exploitation d’une machine virtuelle avec le même contenu que le disque dont l’ID a été transmis en entrée.

À titre d’exemple, une version d’image de la galerie de calcul utilisant l’entrée diskId comme source :

{
    ...
    "resources": [
        {
            "type": "Microsoft.Compute/galleries/images/versions",
            ...
            "properties": {
                ...
                "storageProfile": {
                    "osDiskImage": {
                        "source": {
                            "id": "[parameters('al').input.source.diskId]"
                        }
                    }
                }
                ...
            }
        }
    ]
    ...
}
<!--NeedCopy-->

Entrée d’image de démarrage

L’ objet d’entrée inclut la source propriété. source représente les sorties du déploiement du disque cache, avec une propriété pour chaque sortie spécifiée. Utilisez la diskId propriété correspondant à la source de la ressource en cours de création.

Sortie d’image de démarrage

La sortie du déploiement de l’ image de démarrage est transmise au déploiement de la machine . Il n’y a pas de sorties spéciales ou requises. Toutefois, vous devez inclure les données requises pour créer une machine virtuelle à partir de la ressource créée, comme un identifiant de ressource.

Machine

Le déploiement de la machine doit créer une ressource de machine virtuelle. La machine virtuelle doit être connectée à un réseau sur lequel elle peut accéder à l’appliance App Layering et inversement, conformément aux connexions internes des ports de pare-feu pour la machine Compositing.

Important :

N’attachez pas le disque créé par le déploiement du disque cache à la machine virtuelle. Le disque cache est une ressource partagée considérée comme étant en lecture seule. Créez une copie du disque et joignez-la à la place lorsque vous n’utilisez pas le déploiement Boot Image .

Exigences relatives à la machine

  • Vous devez créer une ressource de machine virtuelle
  • La machine virtuelle doit être connectée à un réseau qui permet la communication vers et depuis l’appliance App Layering
  • Le disque du système d’exploitation de la machine virtuelle doit être créé en utilisant une image de démarrage ou une ressource de disque cache comme source
  • La taille du disque du système d’exploitation de la machine virtuelle doit être définie sur "[parameters('al').input.disk.size]"
  • La userData propriété de la machine virtuelle doit être définie sur "[parameters('al').input.vm.userData]"
{
    ...
    "resources": [
        {
            "type": "Microsoft.Compute/disks",
            "name": "[variables('diskName')]",
            ...
            "properties": {
                ...
                "creationData": {
                    "createOption": "Copy",
                    "sourceResourceId": "[parameters('al').input.disk.image.diskId]"
                },
                "diskSizeGB": "[parameters('al').input.disk.size]",
                ...
            }
        },
        {
            "type": "Microsoft.Compute/virtualMachines",
            ...
            "dependsOn": [
                "[resourceId('Microsoft.Compute/disks', variables('diskName'))]"
            ],
            ...
            "properties": {
                ...
                "storageProfile": {
                    "osDisk": {
                        ...
                        "createOption": "Attach",
                        "managedDisk": {
                            "id": "[resourceId('Microsoft.Compute/disks', variables('diskName'))]"
                        }
                    },
                    "dataDisks": []
                },
                ...
                "userData": "[parameters('al').input.vm.userData]"
                ...
            }
        }
    ]
    ...
}
<!--NeedCopy-->

Entrée de la machine

L’objet d’entrée inclut les propriétés disk et vm.

La propriété disk.image contient la sortie du déploiement de Boot Image, le cas échéant. Sinon, il contient la sortie du déploiement du disque cache . La disk.size propriété contient la taille du disque en Go.

La vm.userData propriété contient les données utilisateur qui doivent être attribuées à la machine virtuelle créée.

Sortie de la machine

La sortie du déploiement de la machine est transmise au déploiement d’ images en couches si un tel déploiement est spécifié. Si vous utilisez un déploiement d’images en couches, vous devez inclure l’ID de la machine virtuelle ou du disque du système d’exploitation dans la sortie afin qu’il puisse être référencé par le déploiement d’images en couches.

Une sortie nommée machineId peut être spécifiée pour indiquer explicitement à App Layering quelle machine virtuelle utiliser. Si aucune machineId sortie n’est spécifiée, App Layering en ajoute une automatiquement et la définit sur l’ID de ressource de la première ressource de machine virtuelle créée par le déploiement.

Une sortie nommée ipAddress peut être spécifiée pour indiquer explicitement à App Layering l’adresse IP à utiliser pour communiquer avec la machine. Si aucune ipAddress sortie n’est spécifiée, App Layering utilise l’adresse privée principale de la carte réseau principale connectée à la ressource de machine virtuelle.

Une sortie nommée message peut être spécifiée pour fournir un message qui est ajouté à l’état final d’une tâche de publication d’image et à l’état de l’action requise d’une tâche de création de couche dans l’interface utilisateur d’App Layering. Ce message n’est utilisé que dans l’état final de la tâche de publication de l’image si aucun déploiement d’image en couches n’est spécifié.

  • Le modèle Machine Starter définit le paramètre de sortie message sur un lien vers la machine dans le portail Azure.

Image en couches

Le déploiement d’images en couches crée une ressource à partir de la machine virtuelle ou d’autres ressources créées par le déploiement de la machine . Il n’y a pas d’exigences strictes quant au type de ressources créées. Cependant, il crée une ressource qui peut être utilisée comme entrée pour un service Provisioning tel que Machine Creation Services (MCS). Une ressource d’images de galerie de calcul en est un bon exemple.

Exigences relatives aux disques d’image en couches

  • Crée une ressource qui peut être utilisée par un service Provisioning pour créer des machines virtuelles.

À titre d’exemple, le bloc de code suivant crée une version d’image de la galerie de calcul en utilisant l’entrée diskId comme source. Cela suppose que le déploiement de la machine incluait une sortie nommée diskId qui est définie sur l’ID du disque du système d’exploitation de la machine :

{
    ...
"resources": [
        {
            "type": "Microsoft.Compute/galleries/images",
            "name": "[format('{0}/{1}', variables('galleryName'), variables('name'))]",
            ...
            "resources": [
                {
                    "type": "versions",
                    ...
                    "dependsOn": [
                        "[resourceId('Microsoft.Compute/galleries/images', variables('galleryName'), variables('name'))]"
                    ],
                    ...
                    "properties": {
                        ...
                        "storageProfile": {
                            "osDiskImage": {
                                "source": {
                                    "id": "[parameters('al').input.source.diskId]"
                                }
                            }
                        }
                        ...
                    }
                }
            ]
        }
    ],
    ...
}
<!--NeedCopy-->

Entrée d’image en couches

L’objet d’entrée inclut les propriétés source et diskName. source représente les sorties du déploiement de la machine, avec une propriété pour chaque sortie spécifiée. La diskName propriété est le nom du disque spécifié dans le modèle d’image App Layering.

Sortie d’image en couches

La sortie du déploiement n’est transmise à aucun autre déploiement. Toutefois, une sortie nommée message peut être spécifiée pour fournir un message qui est ajouté à l’état final d’une tâche de publication d’image dans l’interface utilisateur d’App Layering.

Création de modèles ARM