Les conceptions de modèles Cloud Assembly peuvent déployer un cluster de machines et associer un cluster de disques.
Pour déployer des clusters de machines et de disques, utilisez l'indicateur de ressource allocatePerInstance
et map_to_object
la syntaxe d'expression count.index
dans vos modèles de cloud.
Les exemples de code de modèle de cloud suivants peuvent servir de directives pour les conceptions qui déploient des clusters.
Deux machines qui partagent un cluster de disques
resources: app0: type: Cloud.Machine allocatePerInstance: true properties: image: ubuntu flavor: small attachedDisks: '${map_to_object(slice(resource.disk[*].id, 0,2), "source")}' app1: type: Cloud.Machine allocatePerInstance: true properties: image: ubuntu flavor: small attachedDisks: '${map_to_object(slice(resource.disk[*].id, 2,4), "source")}' disk: type: Cloud.Volume allocatePerInstance: true properties: count: 4 capacityGb: 5
Nombre variable de machines avec un disque chacune
inputs: count: type: integer default: 2 resources: Cloud_Machine_1: type: Cloud.Machine allocatePerInstance: true properties: image: ubuntu flavor: small count: '${input.count}' attachedDisks: '${map_to_object(slice(resource.disk[*].id, count.index, count.index + 1), "source")}' disk: type: Cloud.Volume allocatePerInstance: true properties: count: '${input.count}' capacityGb: 5
Nombre variable de machines avec deux disques chacune
inputs: count: type: integer default: 2 resources: Cloud_Machine_1: type: Cloud.Machine allocatePerInstance: true properties: image: ubuntu flavor: small count: ${input.count} attachedDisks: '${map_to_object(slice(resource.disk[*].id, 2*count.index, 2*(count.index + 1)), "source")}' disk: type: Cloud.Volume allocatePerInstance: true properties: count: ${2*input.count} capacityGb: 5
Définir les tailles de disque au moment de la demande
inputs: disksize: type: array minItems: 2 maxItems: 2 items: type: object properties: size: type: integer resources: app: type: Cloud.Machine allocatePerInstance: true properties: flavor: small image: ubuntu attachedDisks: ${map_to_object(slice(resource.disk[*].id, 0, 2), 'source')} disk: type: Cloud.Volume allocatePerInstance: true properties: count: 2 capacityGb: ${input.disksize[count.index].size}