Tutoriel : Mettre à l’échelle des applications dans Azure App Service à l’aide d’Ansible
Important
Ansible 2.7 (ou version ultérieure) est nécessaire pour exécuter les exemples de playbooks dans cet article.
Azure App Service vous permet de créer et d’héberger du code. Ce code peut se présenter sous la forme d’applications web, de back-ends mobiles et d’API RESTful. Avec App Service, vous pouvez développer votre code en utilisant le langage de programmation de votre choix, sans gérer l’infrastructure. App Service prend en charge les machines virtuelles Linux et Windows. Les déploiements automatisés à partir d’un dépôt Git sont pris en charge, y compris GitHub et Azure DevOps.
Dans cet article, vous apprendrez comment :
- Obtenir les faits d'un plan App Service existant
- Monter en puissance le plan App Service en passant à S2 avec trois rôles de travail
Prérequis
- Abonnement Azure : Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Installer Ansible. Pour cela, choisissez l’une des options suivantes :
- Installez et configurez Ansible sur une machine virtuelle Linux
- Configurez Azure Cloud Shell et, si vous n’avez pas accès à une machine virtuelle Linux, créez une machine virtuelle avec Ansible.
- Application Azure App Service : si vous n’avez pas d’application Azure App Service, configurez une application dans Azure App Service avec Ansible.
Monter en puissance une application
Il existe deux workflows de mise à l'échelle : scale-up et scale-out.
Monter en puissance : pour effectuer un scale-up signifie acquérir davantage de ressources. (processeur, mémoire, espace disque, machines virtuelles, etc.). Il s’agit de modifier le niveau tarifaire du plan App Service de l’application. Scale-out : Pour effectuer un scale-out, vous pouvez augmenter le nombre d’instances de machine virtuelle qui exécutent votre application. (jusqu’à 20 instances selon le niveau tarifaire du plan App Service). La mise à l'échelle automatique permet de mettre automatiquement à l’échelle le nombre d’instances en fonction des planifications et des règles prédéfinies.
Le code du playbook de cette section définit l’opération suivante :
- Obtenir les faits d'un plan App Service existant
- Mettre à jour le plan App Service vers S2 avec trois rôles de travail
Enregistrez le playbook suivant en tant que webapp_scaleup.yml
:
- hosts: localhost
connection: local
vars:
resource_group: myResourceGroup
plan_name: myAppServicePlan
location: eastus
tasks:
- name: Get facts of existing App service plan
azure_rm_appserviceplan_facts:
resource_group: "{{ resource_group }}"
name: "{{ plan_name }}"
register: facts
- debug:
var: facts.appserviceplans[0].sku
- name: Scale up the App service plan
azure_rm_appserviceplan:
resource_group: "{{ resource_group }}"
name: "{{ plan_name }}"
is_linux: true
sku: S2
number_of_workers: 3
- name: Get facts
azure_rm_appserviceplan_facts:
resource_group: "{{ resource_group }}"
name: "{{ plan_name }}"
register: facts
- debug:
var: facts.appserviceplans[0].sku
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook webapp_scaleup.yml
Après avoir exécuté le playbook, vous voyez une sortie similaire aux résultats suivants :
PLAY [localhost]
TASK [Gathering Facts]
ok: [localhost]
TASK [Get facts of existing App service plan]
[WARNING]: Azure API profile latest does not define an entry for WebSiteManagementClient
ok: [localhost]
TASK [debug]
ok: [localhost] => {
"facts.appserviceplans[0].sku": {
"capacity": 1,
"family": "S",
"name": "S1",
"size": "S1",
"tier": "Standard"
}
}
TASK [Scale up the App service plan]
changed: [localhost]
TASK [Get facts]
ok: [localhost]
TASK [debug]
ok: [localhost] => {
"facts.appserviceplans[0].sku": {
"capacity": 3,
"family": "S",
"name": "S2",
"size": "S2",
"tier": "Standard"
}
}
PLAY RECAP
localhost : ok=6 changed=1 unreachable=0 failed=0
Étapes suivantes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour