Aracılığıyla paylaş


Öğretici: Ansible kullanarak Azure rota tablolarını yapılandırma

Önemli

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

Azure, Azure alt ağları, sanal ağlar ve şirket içi ağlar arasındaki trafiği otomatik olarak yönlendirir. Ortamınızın yönlendirmesi üzerinde daha fazla denetime ihtiyacınız varsa bir yol tablosu oluşturabilirsiniz.

Bu makalede şunları öğreneceksiniz:

Yönlendirme tablosu oluşturma Sanal ağ ve alt ağ oluşturma Yönlendirme tablosunu alt ağ ile ilişkilendirme Yönlendirme tablosunu alt ağdan ilişkilendirme Yollar oluşturma ve silme Rota tablosunu sorgulama Rota tablosunu silme

Önkoşullar

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

Yönlendirme tablosu oluşturma

Bu bölümdeki playbook kodu bir yol tablosu oluşturur. Rota tablosu sınırları hakkında bilgi için bkz . Azure sınırları.

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

- hosts: localhost
  vars:
    route_table_name: myRouteTable
    resource_group: myResourceGroup
  tasks:
    - name: Create a route table
      azure_rm_routetable:
        name: "{{ route_table_name }}"
        resource_group: "{{ resource_group }}"

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook route_table_create.yml

Yönlendirme tablosunu bir alt ağ ile ilişkilendirme

Bu bölümdeki playbook kodu:

  • Sanal ağ oluşturur
  • Sanal ağ içinde bir alt ağ oluşturur
  • Bir yol tablosunu alt ağ ile ilişkilendirir

Yol tabloları sanal ağlarla ilişkili değildir. Bunun yerine, yönlendirme tabloları bir sanal ağın alt ağıyla ilişkilendirilir.

Sanal ağ ve yönlendirme tablosunun aynı Azure konumunda ve aboneliğinde birlikte bulunması gerekir.

Alt ağlarla yol tablolarının bire çok ilişkisi vardır. Bir alt ağ ilişkili yol tablosu veya bir yol tablosu olmadan tanımlanabilir. Yol tabloları hiçbiri, bir veya birden çok alt ağ ile ilişkilendirilebilir.

Alt ağdan gelen trafik aşağıdakilere göre yönlendirilir:

  • yol tabloları içinde tanımlanan yollar
  • varsayılan yollar
  • şirket içi ağdan yayılan yollar

Sanal ağın bir Azure sanal ağ geçidine bağlı olması gerekir. Ağ geçidi ExpressRoute veya VPN ağ geçidi ile BGP kullanılıyorsa VPN olabilir.

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

- hosts: localhost
  vars:
    subnet_name: mySubnet
    virtual_network_name: myVirtualNetwork 
    route_table_name: myRouteTable
    resource_group: myResourceGroup
  tasks:
    - name: Create virtual network
      azure_rm_virtualnetwork:
        name: "{{ virtual_network_name }}"
        resource_group: "{{ resource_group }}"
        address_prefixes_cidr:
        - 10.1.0.0/16
        - 172.100.0.0/16
        dns_servers:
        - 127.0.0.1
        - 127.0.0.3
    - name: Create a subnet with route table
      azure_rm_subnet:
        name: "{{ subnet_name }}"
        virtual_network_name: "{{ virtual_network_name }}"
        resource_group: "{{ resource_group }}"
        address_prefix_cidr: "10.1.0.0/24"
        route_table: "{{ route_table_name }}"

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook route_table_associate.yml

Bir alt ağdan yol tablosunu ilişkilendirme

Bu bölümdeki playbook kodu, bir alt ağdan bir yol tablosunu ayırır.

Bir yönlendirme tablosunu alt ağdan ayırırken alt ağ için değerini olarak Noneayarlayınroute_table.

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

- hosts: localhost
  vars:
    subnet_name: mySubnet
    virtual_network_name: myVirtualNetwork 
    resource_group: myResourceGroup
  tasks:
    - name: Dissociate a route table
      azure_rm_subnet:
        name: "{{ subnet_name }}"
        virtual_network_name: "{{ virtual_network_name }}"
        resource_group: "{{ resource_group }}"
        address_prefix_cidr: "10.1.0.0/24"

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook route_table_dissociate.yml

Yönlendirme oluşturma

Bu bölümdeki playbook kodu, yol tablosu içindeki bir yoldur.

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

- hosts: localhost
  vars:
    route_name: myRoute
    route_table_name: myRouteTable
    resource_group: myResourceGroup
  tasks:
    - name: Create route
      azure_rm_route:
        name: "{{ route_name }}"
        resource_group: "{{ resource_group }}"
        next_hop_type: virtual_network_gateway
        address_prefix: "10.1.0.0/16"
        route_table_name: "{{ route_table_name }}"

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

  • virtual_network_gateway olarak next_hop_typetanımlanır. Azure'ın yolları nasıl seçtiği hakkında daha fazla bilgi için bkz . Yönlendirmeye genel bakış.
  • address_prefix olarak 10.1.0.0/16tanımlanır. Ön ek, yol tablosu içinde çoğaltılamaz.

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook route_create.yml

Yol silme

Bu bölümdeki playbook kodu, yol tablosundan bir yolu siler.

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

- hosts: localhost
  vars:
    route_name: myRoute
    route_table_name: myRouteTable
    resource_group: myResourceGroup
  tasks:
    - name: Remove route
      azure_rm_route:
        name: "{{ route_name }}"
        resource_group: "{{ resource_group }}"
        route_table_name: "{{ route_table_name }}"
        state: absent

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook route_delete.yml

Rota tablosu bilgilerini alma

Bu bölümdeki playbook kodu, rota tablosu bilgilerini almak için Ansible modülünü azure_rm_routetable_facts kullanır.

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

- hosts: localhost
  vars:
    route_table_name: myRouteTable
    resource_group: myResourceGroup
  tasks: 
    - name: Get route table information
      azure_rm_routetable_facts:
         resource_group: "{{ resource_group }}"
         name: "{{ route_table_name }}"
      register: query
    
    - debug:
         var: query.route_tables[0]

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook route_table_facts.yml

Yol tablosunu silme

Bu bölümdeki playbook kodu bir yol tablosudur.

Bir yol tablosu silindiğinde, tüm yolları da silinir.

Bir alt ağ ile ilişkilendirilmiş yol tablosu silinemez. Yol tablosunu silmeye çalışmadan önce yönlendirme tablosunu herhangi bir alt ağ ile ilişkilendirin.

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

- hosts: localhost
  vars:
    route_table_name: myRouteTable
    resource_group: myResourceGroup
  tasks:
    - name: Create a route table
      azure_rm_routetable:
        name: "{{ route_table_name }}"
        resource_group: "{{ resource_group }}"
        state: absent

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook route_table_delete.yml

Sonraki adımlar