Öğretici: Ansible kullanarak Azure Service Bus'ta kuyrukları yapılandırma

Önemli

Bu makaledeki örnek playbook'ları çalıştırmak için Ansible 2.8 (veya üzeri) gereklidir.

Azure Service Bus bir kurumsal tümleştirme ileti aracısıdır. Service Bus iki iletişim türünü destekler: kuyruklar ve konular.

Kuyruklar, uygulamalar arasındaki zaman uyumsuz iletişimleri destekler. Uygulama, iletileri depolayan bir kuyruğa ileti gönderir. Ardından alıcı uygulama kuyrukla bağlantı kurar ve mesajları okur.

Konular, ileti oluşturucu ve ileti alıcıları arasında bire çok ilişkiyi etkinleştiren yayımlama-abone olma düzenini destekler.

Bu makalede şunları öğreneceksiniz:

  • Kuyruk oluştur
  • SAS ilkesini oluştur
  • Ad alanı bilgilerini alma
  • Kuyruk bilgilerini alma
  • Kuyruk SAS ilkesini iptal etme

Önkoşullar

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Service Bus kuyruğunu oluşturun

Örnek playbook kodu aşağıdaki kaynakları oluşturur:

  • Azure kaynak grubu
  • Kaynak grubu içindeki Service Bus ad alanı
  • Ad alanına sahip Service Bus kuyruğu

Aşağıdaki playbook'u servicebus_queue.yml olarak kaydedin.

---
- hosts: localhost
  vars:
      resource_group: servicebustest
      location: eastus
      namespace: servicebustestns
      queue: servicebustestqueue
  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 queue
      azure_rm_servicebusqueue:
          name: "{{ queue }}"
          namespace: "{{ namespace }}"
          resource_group: "{{ resource_group }}"
      register: queue
    - debug:
          var: queue

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook servicebus_queue.yml

SAS ilkesini oluşturma

Paylaşılan Erişim İmzası (SAS), belirteçleri kullanan talep tabanlı bir yetkilendirme mekanizmasıdır.

Örnek playbook kodu, farklı ayrıcalıklara sahip bir Service Bus kuyruğu için iki SAS ilkesi oluşturur.

Aşağıdaki playbook'u servicebus_queue_policy.yml olarak kaydedin.

---
- hosts: localhost
  vars:
      resource_group: servicebustest
      namespace: servicebustestns
      queue: servicebustestqueue
  tasks:
    - name: Create a policy with send and listen privilege
      azure_rm_servicebussaspolicy:
          name: "{{ queue }}-policy"
          queue: "{{ queue }}"
          namespace: "{{ namespace }}"
          resource_group: "{{ resource_group }}"
          rights: listen_send
      register: policy
    - debug:
          var: policy

Playbook'u çalıştırmadan önce aşağıdaki notlara bakın:

  • rights değeri, kullanıcının kuyrukla sahip olduğu ayrıcalığı temsil eder. Şu değerlerden birini belirtin: manage, listen, sendveya listen_send.

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook servicebus_queue_policy.yml

Ad alanı bilgilerini alma

Örnek playbook kodu ad alanı bilgilerini sorgular.

Aşağıdaki playbook'u servicebus_namespace_info.yml olarak kaydedin.

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

Playbook'u çalıştırmadan önce aşağıdaki notlara bakın:

  • değeri, show_sas_policies SAS ilkelerinin belirtilen ad alanı altında gösterilip gösterilmeyeceğini gösterir. Varsayılan olarak, ek ağ yükünden kaçınmak için değer False'dir.

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook servicebus_namespace_info.yml

Kuyruk bilgilerini alma

Örnek playbook kodu kuyruk bilgilerini sorgular.

Aşağıdaki playbook'u servicebus_queue_info.yml olarak kaydedin.

---
- hosts: localhost
  vars:
      resource_group: servicebustest
      namespace: servicebustestns
      queue: servicebustestqueue
  tasks:
    - name: Get a queue's information
      azure_rm_servicebus_facts:
          type: queue
          name: "{{ queue }}"
          namespace: "{{ namespace }}"
          resource_group: "{{ resource_group }}"
          show_sas_policies: yes
      register: queue
    - debug:
          var: queue

Playbook'u çalıştırmadan önce aşağıdaki notlara bakın:

  • değeri, show_sas_policies SAS ilkelerinin belirtilen kuyruk altında gösterilip gösterilmeyeceğini gösterir. Varsayılan olarak, ek ağ ek yükünü önlemek için bu değer olarak False ayarlanır.

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook servicebus_queue_info.yml

Kuyruk SAS ilkesini iptal et.

Örnek playbook kodu bir kuyruk SAS politikasını siler.

Aşağıdaki playbook'u servicebus_queue_policy_delete.yml olarak kaydedin.

---
- hosts: localhost
  vars:
      resource_group: servicebustest
      namespace: servicebustestns
      queue: servicebustestqueue
  tasks:
    - name: Create a policy with send and listen privilege
      azure_rm_servicebussaspolicy:
          name: "{{ queue }}-policy"
          queue: "{{ queue }}"
          namespace: "{{ namespace }}"
          resource_group: "{{ resource_group }}"
          state: absent

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook servicebus_queue_policy_delete.yml

Kaynakları temizle

Artık gerekli olmadığında, bu makalede oluşturulan kaynakları silin.

Aşağıdaki kodu olarak cleanup.ymlkaydedin:

---
- hosts: localhost
  vars:
      resource_group: servicebustest
      namespace: servicebustestns
      queue: servicebustestqueue
  tasks:
    - name: Delete queue
      azure_rm_servicebusqueue:
          name: "{{ queue }}"
          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

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook cleanup.yml

Sonraki Adımlar