Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Ansible 2.8 (of hoger) is vereist om de voorbeeldplaybooks in dit artikel uit te voeren.
Azure routeert automatisch verkeer tussen Azure-subnetten, virtuele netwerken en on-premises netwerken. Als u meer controle nodig hebt over de routering van uw omgeving, kunt u een routetabel maken.
In dit artikel leert u het volgende:
Een routetabel maken Een virtueel netwerk maken en een subnet creëren Een routetabel koppelen aan een subnet Een routetabel loskoppelen van een subnet Routes maken en verwijderen Een routetabel opvragen Een routetabel verwijderen
Vereiste voorwaarden
- Azure-abonnement: als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Ansible installeren: Voer een van de volgende opties uit:
- Ansible installeren en configureren op een virtuele Linux-machine
- Configureer Azure Cloud Shell en maak een virtuele machine met Ansible als u geen toegang hebt tot een virtuele Linux-machine.
Een routeringstabel maken
Met de playbookcode in deze sectie wordt een routetabel gemaakt. Zie Azure-limieten voor informatie over limieten voor routetabellen.
Sla het volgende "playbook" op als 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 }}"
Het playbook uitvoeren met ansible-playbook
ansible-playbook route_table_create.yml
Een routetabel aan een subnet koppelen
De playbookcode in deze sectie:
- Een virtueel netwerk maken
- Hiermee maakt u een subnet in het virtuele netwerk
- Een routetabel aan het subnet koppelen
Routetabellen zijn niet gekoppeld aan virtuele netwerken. In plaats daarvan worden routetabellen gekoppeld aan het subnet van een virtueel netwerk.
Het virtuele netwerk en de routetabel moeten naast elkaar bestaan in dezelfde Azure-locatie en hetzelfde abonnement.
Subnetten en routetabellen hebben een een-op-veel-relatie. Een subnet kan worden gedefinieerd zonder gekoppelde routetabel of één routetabel. Routetabellen kunnen worden gekoppeld aan geen, één of veel subnetten.
Verkeer van het subnet wordt gerouteerd op basis van:
- in route-tabellen gedefinieerde routes
- standaardroutes
- routes die worden doorgegeven vanuit een on-premises netwerk
Het virtuele netwerk moet zijn verbonden met een virtuele Azure-netwerkgateway. De gateway kan ExpressRoute of VPN zijn als u BGP gebruikt met een VPN-gateway.
Sla het volgende "playbook" op als 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 }}"
Het playbook uitvoeren met ansible-playbook
ansible-playbook route_table_associate.yml
Een routetabel loskoppelen van een subnet
Met de playbookcode in deze sectie wordt een routetabel losgekoppeld van een subnet.
Wanneer u een routetabel loskoppelt van een subnet, stelt u het route_table voor het subnet in op None.
Sla het volgende "playbook" op als 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"
Het playbook uitvoeren met ansible-playbook
ansible-playbook route_table_dissociate.yml
Een route maken
De playbookcode in deze sectie bevat een route binnen een routetabel.
Sla het volgende "playbook" op als 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 }}"
Bekijk de volgende opmerkingen voordat u het draaiboek uitvoert.
-
virtual_network_gatewayis gedefinieerd alsnext_hop_type. Zie routeringsoverzicht voor meer informatie over hoe Azure routes selecteert. -
address_prefixis gedefinieerd als10.1.0.0/16. Het voorvoegsel kan niet worden gedupliceerd binnen de routetabel.
Het playbook uitvoeren met ansible-playbook
ansible-playbook route_create.yml
Een route verwijderen
De playbookcode in deze sectie verwijdert een route uit een routetabel.
Sla het volgende "playbook" op als 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
Het playbook uitvoeren met ansible-playbook
ansible-playbook route_delete.yml
Routetabelgegevens ophalen
De playbookcode in deze sectie maakt gebruik van de Ansible-module azure_rm_routetable_facts om routetabelgegevens op te halen.
Sla het volgende "playbook" op als 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]
Het playbook uitvoeren met ansible-playbook
ansible-playbook route_table_facts.yml
Een routetabel verwijderen
De playbookcode in deze sectie bevat een routetabel.
Wanneer een routetabel wordt verwijderd, worden alle routes ook verwijderd.
Een routetabel kan niet worden verwijderd als deze is gekoppeld aan een subnet. Ontkoppel de routetabel van alle subnetten voordat u de routetabel probeert te verwijderen.
Sla het volgende "playbook" op als 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
Het playbook uitvoeren met ansible-playbook
ansible-playbook route_table_delete.yml