Sdílet prostřednictvím


Kurz: Konfigurace směrovacích tabulek Azure pomocí Ansible

Důležité

K spuštění ukázkových playbooků v tomto článku se vyžaduje Ansible 2.8 (nebo novější).

Azure automaticky směruje provoz mezi podsítěmi Azure, virtuálními sítěmi a místními sítěmi. Pokud potřebujete větší kontrolu nad směrováním vašeho prostředí, můžete vytvořit směrovací tabulku.

V tomto článku získáte informace o těchto tématech:

Vytvoření směrovací tabulky – Vytvoření virtuální sítě a podsítě – Přidružení směrovací tabulky k podsíti – Zrušení přidružení směrovací tabulky z podsítě – Vytvoření a odstranění tras – Dotaz na směrovací tabulku – Odstranění směrovací tabulky – Odstranění směrovací tabulky

Požadavky

  • Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

Vytvoření směrovací tabulky

Kód playbooku v této části vytvoří směrovací tabulku. Informace o omezeních směrovacích tabulek najdete v tématu Limity Azure.

Uložte následující ukázkový playbook jako route_table_create.yml:

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

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook route_table_create.yml

Přidružení směrovací tabulky k podsíti

Kód playbooku v této části:

  • Vytvoří virtuální síť.
  • Vytvoří podsíť v rámci virtuální sítě.
  • Přidruží směrovací tabulku k podsíti.

Směrovací tabulky nejsou přidružené k virtuálním sítím. Směrovací tabulky jsou spíše přidružené k podsíti virtuální sítě.

Virtuální síť a směrovací tabulka musí existovat ve stejném umístění a předplatném Azure.

Podsítě a směrovací tabulky mají relaci 1:N. Podsíť lze definovat bez přidružené směrovací tabulky nebo jedné směrovací tabulky. Směrovací tabulky můžou být přidružené k žádné, jedné nebo mnoha podsítím.

Provoz z podsítě se směruje na základě:

  • trasy definované v rámci směrovacích tabulek
  • výchozí trasy
  • trasy šířené z místní sítě

Virtuální síť musí být připojená k bráně virtuální sítě Azure. Brána může být ExpressRoute nebo VPN, pokud používáte protokol BGP s bránou VPN.

Uložte následující ukázkový playbook jako route_table_associate.yml:

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

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook route_table_associate.yml

Zrušení přidružení směrovací tabulky z podsítě

Kód playbooku v této části přidružuje směrovací tabulku z podsítě.

Při přidružení směrovací tabulky z podsítě nastavte route_table pro podsíť Nonehodnotu .

Uložte následující ukázkový playbook jako route_table_dissociate.yml:

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

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook route_table_dissociate.yml

Vytvoření trasy

Kód playbooku v této části představuje trasu v rámci směrovací tabulky.

Uložte následující ukázkový playbook jako route_create.yml:

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

Před spuštěním playbooku si přečtěte následující poznámky:

  • virtual_network_gateway je definován jako next_hop_type. Další informace o tom, jak Azure vybírá trasy, najdete v přehledu směrování.
  • address_prefix je definován jako 10.1.0.0/16. Předponu nelze duplikovat v rámci směrovací tabulky.

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook route_create.yml

Odstranění trasy

Kód playbooku v této části odstraní trasu ze směrovací tabulky.

Uložte následující ukázkový playbook jako route_delete.yml:

- 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

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook route_delete.yml

Získání informací o směrovací tabulce

Kód playbooku v této části používá modul azure_rm_routetable_facts Ansible k načtení informací o směrovací tabulce.

Uložte následující ukázkový playbook jako route_table_facts.yml:

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

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook route_table_facts.yml

Odstranění směrovací tabulky

Kód playbooku v této části je směrovací tabulka.

Při odstranění směrovací tabulky se odstraní také všechny její trasy.

Směrovací tabulku nejde odstranit, pokud je přidružená k podsíti. Před pokusem o odstranění směrovací tabulky zrušte přidružení směrovací tabulky z libovolné podsítě .

Uložte následující ukázkový playbook jako route_table_delete.yml:

- 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

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook route_table_delete.yml

Další kroky