~> Deprecation Notice Equinix Metal arrivera en fin de vie le 30 juin 2026. Toutes les ressources Metal seront supprimées dans la version 5.0.0 de ce fournisseur. Utilisez la version 4.x de ce fournisseur pour continuer à l'utiliser jusqu'à la fin de sa durée de vie. Consultez https://docs.equinix.com/metal/ pour plus d'informations.
equinix_metal_reserved_ip_block (Ressource)
Fournit une ressource pour créer et gérer des blocs d'adresses IP réservées dans un projet.
Lorsqu'un utilisateur installe son premier appareil dans un métro, l'API Metal d'Equinix alloue automatiquement des blocs IPv6/56 et IPv4/25 privés. Le nouvel appareil obtient alors des adresses IPv6 et IPv4 privées à partir de ces blocs. Il obtient également une adresse IPv4/31 publique. Chaque nouveau dispositif dans le projet et le métro obtiendra automatiquement des adresses IPv6 et IPv4 privées à partir de ces blocs pré-alloués. Les blocs IPv6 et IPv4 privés ne peuvent pas être créés, mais seulement importés. Avec cette ressource, il est possible de créer des blocs IPv4 publics ou des blocs IPv4 globaux.
Les blocs publics sont attribués dans un métro. Les adresses des blocs publics ne peuvent être attribuées qu'à des appareils dans le métro. Les blocs publics peuvent avoir un masque de /24 (256 adresses) à /32 (1 adresse). Si vous créez un bloc public avec cette ressource, vous devez remplir l'argument métro.
Les adresses des blocs globaux peuvent être attribuées dans n'importe quel métro. Les blocs globaux peuvent avoir un masque allant de /30 (4 adresses) à /32 (1 adresse). Si vous créez un bloc global avec cette ressource, vous devez spécifier type = "global_ipv4" et omettre l'argument metro.
Une fois que le bloc IP est attribué ou importé, une adresse de ce bloc peut être attribuée à l'appareil avec la ressource equinix_metal_ip_attachment.
Consultez la [documentation sur le routage et le transfert virtuels pour obtenir des détails sur le produit et des documents de référence sur l'API.
Exemple d'utilisation
Attribuez des blocs IP réservés :
# Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv) metro for myproject
resource "equinix_metal_reserved_ip_block" "two_elastic_addresses" {
project_id = local.project_id
metro = "sv"
quantity = 2
}
# Allocate 1 floating IP in Silicon Valley (sv) metro
resource "equinix_metal_reserved_ip_block" "test" {
project_id = local.project_id
type = "public_ipv4"
metro = "sv"
quantity = 1
}
# Allocate 1 global floating IP, which can be assigned to device in any metro
resource "equinix_metal_reserved_ip_block" "test" {
project_id = local.project_id
type = "global_ipv4"
quantity = 1
}
Allouez un bloc et exécutez un appareil avec IPv4 public à partir de ce bloc.
# Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv) metro
resource "equinix_metal_reserved_ip_block" "example" {
project_id = local.project_id
metro = "sv"
quantity = 2
}
# Run a device with both public IPv4 from the block assigned
resource "equinix_metal_device" "nodes" {
project_id = local.project_id
metro = "sv"
plan = "c3.small.x86"
operating_system = "ubuntu_24_04"
hostname = "test"
billing_cycle = "hourly"
ip_address {
type = "public_ipv4"
cidr = 31
reservation_ids = [equinix_metal_reserved_ip_block.example.id]
}
ip_address {
type = "private_ipv4"
}
}
Référence de l'argument
Les arguments suivants sont soutenus :
project_id- (Obligatoire) L'identifiant du projet Metal où allouer le bloc d'adresses.quantity- (Facultatif) Le nombre d'adresses/32allouées, une puissance de 2. Requis lorsquetypen'est pasvrf.type- (Facultatif) L'un des éléments suivants :global_ipv4,public_ipv4ouvrf. La valeur par défaut estpublic_ipv4pour la compatibilité ascendante.facility- (Déclassé) Installation où allouer le bloc d'adresses IP publiques, n'a de sens que si le type estpublic_ipv4et doit être vide si le type estglobal_ipv4. Conflit avecmetro. Utilisez metro à la place ; lisez le [facility to metro migration guidemetro- (Facultatif) Métro où allouer le bloc d'adresses IP publiques, n'a de sens que si le type estpublic_ipv4et doit être vide si le type estglobal_ipv4. Conflit avecfacility.description- (Facultatif) Description arbitraire.tags- (Facultatif) Liste de balises sous forme de chaîne.vrf_id- (Facultatif) Uniquement valide et requis lorsquetypeestvrf. ID VRF pour les réservations de type=vrf.wait_for_state- (Facultatif) Attendez que le bloc de réservation IP atteigne l'état souhaité lors de la création de la ressource. L'un des éléments suivants :pending,created:pending,created. L'étatcreatedest l'état par défaut et recommandé si les adresses sont nécessaires dans la configuration. Une erreur sera renvoyée si un délai d'attente ou l'étatdeniedest rencontré.custom_data- (Facultatif) Custom Data est un objet arbitraire (soumis dans Terraform en tant que JSON sérialisé) à attribuer à la réservation d'IP. Cela peut être utile pour les IPAM autogérés. L'objet doit être un JSON valide.network- (Facultatif) Uniquement valable en tant qu'argument et requis lorsquetypeestvrf. Une adresse réseau non réservée d'unip_rangeexistant dans le VRF spécifié.cidr- (Facultatif) Uniquement valable en tant qu'argument et requis lorsquetypeestvrf. La taille du réseau à réserver à partir d'un VRF existant ip_range.cidrne peut être spécifié qu'avecvrf_id. La plage est comprise entre 22 et 31. Les circuits virtuels nécessitent 30-31. Les autres ressources VRF doivent utiliser un CIDR dans la plage 22-29.
Référence des attributs
En plus de tous les arguments ci-dessus, les attributs suivants sont exportés :
id- L'identifiant unique du bloc.cidr_notation- Adresse et masque en notation CIDR, par exemple147.229.15.30/31.network- Partie de la spécification du bloc relative à l'adresse IP du réseau.netmask- Masque en notation décimale, par exemple255.255.255.0.cidr- longueur du préfixe CIDR du bloc sous forme d'entier.address_family- Famille d'adresses sous forme de nombre entier. L'un de4ou6.public- Indicateur booléen indiquant si les adresses d'un bloc sont publiques.global- Indicateur booléen indiquant si les adresses d'un bloc sont globales (c'est-à-dire qu'elles peuvent être attribuées dans n'importe quel métro).vrf_id- ID VRF du bloc lorsque type=vrf
-> NOTE : La référence idempotente à une première adresse /32 d'un bloc réservé peut ressembler à join("/", [cidrhost(metal_reserved_ip_block.myblock.cidr_notation,0), "32"]).
Importer
Cette ressource peut être importée à l'aide d'un identifiant de réservation IP existant :
terraform import equinix_metal_reserved_ip_block {existing_ip_reservation_id}