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 valeuruploadSize
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.