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.
Az Ansible telepítése: Válasszon az alábbi lehetőségek közül:
- Az Ansible telepítése és konfigurálása Linux rendszerű virtuális gépen
- Konfigurálja az Azure Cloud Shellt , és – ha nincs hozzáférése Linux rendszerű virtuális géphez – hozzon létre egy virtuális gépet az Ansible használatával.
Ú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:
- útvonaltáblákban definiált útvonalak
- alapértelmezett útvonalak
- helyszíni hálózatról propagált útvonalak
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