Megosztás a következőn keresztül:


Oktatóanyag: Azure-útvonaltáblák konfigurálása az Ansible használatával

Fontos

Az Ansible 2.8 (vagy újabb) szükséges a jelen cikkben szereplő minta forgatókönyvek futtatásához.

Az Azure automatikusan irányítja a forgalmat az Azure-alhálózatok, a virtuális hálózatok és a helyszíni hálózatok között. Ha több vezérlésre van szüksége a környezet útválasztása felett, létrehozhat egy útvonaltáblát.

Ebben a cikkben az alábbiakkal ismerkedhet meg:

Útvonaltábla létrehozása Virtuális hálózat és alhálózat létrehozása Útvonaltábla társítása alhálózattal Útvonaltábla társítása alhálózatból Útvonalak létrehozása és törlése Útvonaltábla lekérdezése Útvonaltábla törlése

Előfeltételek

  • Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.

Útválasztási táblázat létrehozása

Az ebben a szakaszban található forgatókönyvkód létrehoz egy útvonaltáblát. Az útvonaltáblák korlátairól az Azure korlátait ismertető cikkben olvashat.

Mentse a következő forgatókönyvet route_table_create.yml néven:

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

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook route_table_create.yml

Útválasztási táblázat társítása alhálózattal

Az ebben a szakaszban található forgatókönyv kódja:

  • Virtuális hálózat létrehozása
  • Alhálózat létrehozása a virtuális hálózaton belül
  • Útvonaltáblát társít az alhálózathoz

Az útvonaltáblák nincsenek virtuális hálózatokhoz társítva. Az útvonaltáblák inkább egy virtuális hálózat alhálózatához vannak társítva.

A virtuális hálózatnak és az útvonaltáblának ugyanabban az Azure-helyen és előfizetésben kell léteznie.

Az alhálózatok és az útvonaltáblák egy-a-többhöz kapcsolattal rendelkeznek. Egy alhálózat definiálható társított útvonaltábla vagy egy útvonaltábla nélkül. Az útvonaltáblák egyetlen, egy vagy több alhálózathoz is társíthatók.

Az alhálózat forgalmát a következő alapján irányítja a rendszer:

A virtuális hálózatot azure-beli virtuális hálózati átjáróhoz kell csatlakoztatni. Az átjáró lehet ExpressRoute vagy VPN, ha a BGP-t VPN-átjáróval használja.

Mentse a következő forgatókönyvet route_table_associate.yml néven:

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

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook route_table_associate.yml

Útvonaltábla társítása alhálózatról

Az ebben a szakaszban található forgatókönyvkód leválaszt egy útvonaltáblát egy alhálózatról.

Ha leválaszt egy útvonaltáblát egy alhálózatról, állítsa az route_table alhálózathoz a következőt None: .

Mentse a következő forgatókönyvet route_table_dissociate.yml néven:

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

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook route_table_dissociate.yml

Útvonal létrehozása

Az ebben a szakaszban található forgatókönyv kódja egy útvonaltábla útvonala.

Mentse a következő forgatókönyvet route_create.yml néven:

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

A forgatókönyv futtatása előtt tekintse meg a következő megjegyzéseket:

  • virtual_network_gateway a következőként van definiálva: next_hop_type. További információ arról, hogy az Azure hogyan választja ki az útvonalakat: Útválasztás – áttekintés.
  • address_prefix a következőként van definiálva: 10.1.0.0/16. Az előtag nem duplikálható az útvonaltáblában.

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook route_create.yml

Útvonal törlése

Az ebben a szakaszban található forgatókönyv-kód töröl egy útvonalat egy útvonaltáblából.

Mentse a következő forgatókönyvet route_delete.yml néven:

- 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

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook route_delete.yml

Útvonaltábla adatainak lekérése

Az ebben a szakaszban található forgatókönyv-kód az Ansible modult azure_rm_routetable_facts használja az útvonaltábla adatainak lekéréséhez.

Mentse a következő forgatókönyvet route_table_facts.yml néven:

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

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook route_table_facts.yml

Útvonaltábla törlése

Az ebben a szakaszban található forgatókönyv kódja egy útvonaltáblázat.

Ha töröl egy útvonaltáblát, az összes útvonala is törlődik.

Az útvonaltáblák nem törölhetők, ha alhálózathoz van társítva. Bontsa le az útvonaltáblát az alhálózatokról , mielőtt megkísérli törölni az útvonaltáblát.

Mentse a következő forgatókönyvet route_table_delete.yml néven:

- 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

A forgatókönyv futtatása ansible-playbook használatával

ansible-playbook route_table_delete.yml

További lépések