Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Ansible 2.8 (ou version ultérieure) est nécessaire pour exécuter les exemples de playbooks dans cet article.
Azure Service Bus est un répartiteur de messages d’intégration d’entreprise. Service Bus prend en charge deux types de communications : les files d’attente et les rubriques.
Les files d’attente prennent en charge les communications asynchrones entre les applications. Une application envoie des messages à une file d’attente qui stocke les messages. L’application de réception se connecte ensuite pour lire les messages à partir de la file d’attente.
Les rubriques prennent en charge le modèle de publication-abonnement, ce qui permet une relation de un-à-plusieurs entre l’expéditeur du message et le ou les récepteurs de ce message.
Dans cet article, vous apprendrez comment :
- Créer une rubrique
- Création d’un abonnement
- Créer une stratégie SAP
- Récupérer les informations de l’espace de noms
- Récupérer les informations des rubriques et des abonnements
- Révoquer une stratégie SAP
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.
Créer la rubrique Service Bus
Le code de l’exemple de playbook crée les ressources suivantes :
- Groupe de ressources Azure
- Espace de noms Service Bus dans le groupe de ressources
- Rubrique Service Bus avec l’espace de noms
Enregistrez le playbook suivant en tant que servicebus_topic.yml
:
---
- hosts: localhost
vars:
resource_group: servicebustest
location: eastus
namespace: servicebustestns
topic: servicebustesttopic
tasks:
- name: Ensure resource group exist
azure_rm_resourcegroup:
name: "{{ resource_group }}"
location: "{{ location }}"
- name: Create a namespace
azure_rm_servicebus:
name: "{{ namespace }}"
resource_group: "{{ resource_group }}"
- name: Create a topic
azure_rm_servicebustopic:
name: "{{ topic }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
register: topic
- debug:
var: topic
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook servicebus_topic.yml
Créer l’abonnement
Le code de l’exemple de playbook crée l’abonnement sous une rubrique Service Bus. Les rubriques Azure Service Bus peuvent comporter plusieurs abonnements. Un utilisateur abonné à une rubrique peut recevoir une copie de tous les messages envoyés à cette rubrique. Les abonnements sont des entités nommées créées pour durer, mais qui peuvent expirer sur option.
---
- hosts: localhost
vars:
resource_group: servicebustest
location: eastus
namespace: servicebustestns
topic: servicebustesttopic
subscription: servicebustestsubs
tasks:
- name: Create a subscription
azure_rm_servicebustopicsubscription:
name: "{{ subscription }}"
topic: "{{ topic }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
register: subs
- debug:
var: subs
Enregistrez le playbook suivant en tant que servicebus_subscription.yml
:
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook servicebus_subscription.yml
Créer la stratégie SAP
Une signature d’accès partagé (SAP) est un mécanisme d’autorisation basée sur les revendications qui utilise des jetons.
Le code de l’exemple de playbook crée deux stratégies SAP pour une file d’attente Service Bus avec différents privilèges.
Enregistrez le playbook suivant en tant que servicebus_topic_policy.yml
:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
topic: servicebustesttopic
tasks:
- name: Create a policy with send and listen privilege
azure_rm_servicebussaspolicy:
name: "{{ topic }}-{{ item }}"
topic: "{{ topic }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
rights: "{{ item }}"
with_items:
- send
- listen
register: policy
- debug:
var: policy
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook servicebus_topic_policy.yml
Récupérer les informations de l’espace de noms
Le code de l’exemple de playbook demande les informations de l’espace de noms.
Enregistrez le playbook suivant en tant que servicebus_namespace_info.yml
:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
tasks:
- name: Get a namespace's information
azure_rm_servicebus_facts:
type: namespace
name: "{{ namespace }}"
resource_group: "{{ resource_group }}"
show_sas_policies: yes
register: ns
- debug:
var: ns
Avant d’exécuter le playbook, consultez les notes suivantes :
- La valeur
show_sas_policies
indique s’il faut afficher les stratégies SAP sous l’espace de noms spécifié. Par défaut, la valeur estFalse
afin d’éviter toute surcharge réseau supplémentaire.
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook servicebus_namespace_info.yml
Récupérer les informations des rubriques et des abonnements
Le code de l’exemple de playbook demande les informations suivantes :
- Informations sur la rubrique Service Bus
- Liste des détails de l’abonnement de la rubrique
Enregistrez le playbook suivant en tant que servicebus_list.yml
:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
topic: servicebustesttopic
tasks:
- name: Get a topic's information
azure_rm_servicebus_facts:
type: topic
name: "{{ topic }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
show_sas_policies: yes
register: topic_fact
- name: "List subscriptions under topic {{ topic }}"
azure_rm_servicebus_facts:
type: subscription
topic: "{{ topic }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
register: subs_fact
- debug:
var: "{{ item }}"
with_items:
- topic_fact.servicebuses[0]
- subs_fact.servicebuses
Avant d’exécuter le playbook, consultez les notes suivantes :
- La valeur
show_sas_policies
indique s’il faut afficher les stratégies SAP sous la file d’attente spécifiée. Par défaut, cette valeur estFalse
afin d’éviter toute surcharge réseau supplémentaire.
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook servicebus_list.yml
Révoquer la stratégie SAP de file d’attente
Le code de l’exemple de playbook supprime une stratégie SAP de file d’attente.
Enregistrez le playbook suivant en tant que servicebus_queue_policy_delete.yml
:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
topic: servicebustesttopic
tasks:
- name: Delete a policy
azure_rm_servicebussaspolicy:
name: "{{ topic }}-policy"
topic: "{{ topic }}"
namespace: "{{ namespace }}"
resource_group: "{{ resource_group }}"
state: absent
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook servicebus_topic_policy_delete.yml
Nettoyer les ressources
Lorsque vous n’en avez plus besoin, supprimez les ressources créées dans cet article.
Enregistrez le code suivant en tant que cleanup.yml
:
---
- hosts: localhost
vars:
resource_group: servicebustest
namespace: servicebustestns
topic: servicebustesttopic
subscription: servicebustestsubs
tasks:
- name: Delete subscription
azure_rm_servicebustopicsubscription:
name: "{{ subscription }}"
topic: "{{ topic }}"
resource_group: "{{ resource_group }}"
namespace: "{{ namespace }}"
state: absent
- name: Delete topic
azure_rm_servicebustopic:
name: "{{ topic }}"
resource_group: "{{ resource_group }}"
namespace: "{{ namespace }}"
state: absent
- name: Delete namespace
azure_rm_servicebus:
name: "{{ namespace }}"
resource_group: "{{ resource_group }}"
state: absent
- name: Delete resource group
azure_rm_resourcegroup:
name: "{{ resource_group }}"
state: absent
force_delete_nonempty: yes
Exécutez le playbook en utilisant ansible-playbook
ansible-playbook cleanup.yml