Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Ansible 2.8 (ou version ultérieure) est nécessaire pour exécuter les exemples de playbooks dans cet article.
Azure achemine automatiquement le trafic entre les sous-réseaux, les réseaux virtuels et les réseaux locaux Azure. Si vous avez besoin d’un contrôle supplémentaire sur le routage de votre environnement, vous pouvez créer une table de routage.
Dans cet article, vous allez apprendre à :
Créer une table de routage Créer un réseau virtuel et un sous-réseau Associer une table de routage à un sous-réseau dissocier une table de routage à partir d’un sous-réseau Créer et supprimer des itinéraires Interroger une table de routage Supprimer une table de routage
Prerequisites
- Abonnement Azure : si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Installez Ansible : Effectuez l’une des options suivantes :
- Installer et configurer Ansible sur une machine virtuelle Linux
- Configurez Azure Cloud Shell et, si vous n’avez pas accès à une machine virtuelle Linux, créez une machine virtuelle avec Ansible.
Créer une table de routage
Le code du playbook de cette section crée une table de routage. Pour plus d’informations sur les limites de table de routage, consultez les limites d’Azure.
Enregistrez le playbook suivant en tant que 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 }}"
Exécuter le playbook avec Ansible-playbook
ansible-playbook route_table_create.yml
Associer une table de routage à un sous-réseau
Code du playbook dans cette section :
- Crée un réseau virtuel
- Crée un sous-réseau au sein du réseau virtuel
- Associe une table de routage au sous-réseau
Les tables de routage ne sont pas associées à des réseaux virtuels, Au lieu de cela, les tables de routage sont associées au sous-réseau d’un réseau virtuel.
Le réseau virtuel et la table de routage doivent coexister dans le même emplacement et abonnement Azure.
Les sous-réseaux et les tables de routage ont une relation un-à-plusieurs. Un sous-réseau peut être défini sans table de routage associée ou avec une table de routage. Les tables de routage peuvent être associées à aucun, un ou plusieurs sous-réseaux.
Le trafic à partir du sous-réseau est routé en fonction des points suivants :
- routes définies dans les tables de routage
- itinéraires par défaut
- itinéraires propagés à partir d’un réseau local
Le réseau virtuel doit être connecté à une passerelle de réseau virtuel Azure. La passerelle peut être ExpressRoute ou VPN si vous utilisez BGP avec une passerelle VPN.
Enregistrez le playbook suivant en tant que 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 }}"
Exécuter le playbook avec Ansible-playbook
ansible-playbook route_table_associate.yml
Dissocier une table de routage d’un sous-réseau
Le code du playbook de cette section dissocie une table de routage d'un sous-réseau.
Lors de la dissociation d’une table de routage d’un sous-réseau, définissez le route_table pour le sous-réseau à None.
Enregistrez le playbook suivant en tant que 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"
Exécuter le playbook avec Ansible-playbook
ansible-playbook route_table_dissociate.yml
Créer un itinéraire
Le code du playbook dans cette section définit un itinéraire au sein d'une table de routage.
Enregistrez le playbook suivant en tant que 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 }}"
Avant d’exécuter le manuel, lisez les notes suivantes :
-
virtual_network_gatewayest défini en tant quenext_hop_type. Pour plus d’informations sur la façon dont Azure sélectionne des itinéraires, consultez vue d’ensemble du routage. -
address_prefixest défini en tant que10.1.0.0/16. Le préfixe ne peut pas être dupliqué dans la table de routage.
Exécuter le playbook avec Ansible-playbook
ansible-playbook route_create.yml
Supprimer un itinéraire
Le code du playbook de cette section supprime un itinéraire d’une table de routage.
Enregistrez le playbook suivant en tant que 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
Exécuter le playbook avec Ansible-playbook
ansible-playbook route_delete.yml
Obtenir des informations sur la table de routage
Le code du playbook de cette section utilise le module azure_rm_routetable_facts Ansible pour récupérer les informations de table de routage.
Enregistrez le playbook suivant sous 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]
Exécuter le playbook à l’aide de ansible-playbook
ansible-playbook route_table_facts.yml
Supprimer une table de routage
Le code du playbook dans cette section est une table de routage.
Lorsqu’une table de routage est supprimée, toutes ses routes sont également supprimées.
Une table de routage ne peut pas être supprimée si elle est associée à un sous-réseau. Dissociez la table de routage des sous-réseaux avant de tenter de supprimer la table de routage.
Enregistrez le playbook suivant en tant que 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
Exécuter le playbook à l’aide de ansible-playbook
ansible-playbook route_table_delete.yml