Fysieke servers implementeren met Terraform op Bare Metal Cloud – Naadloze IaC-integratie
Infrastructure as Code (IaC) vereenvoudigt het beheer van gevirtualiseerde cloudbronnen. Met de introductie van cloud-native dedicated servers is het nu mogelijk om fysieke machines met dezelfde flexibiliteit te implementeren.
PhoenixNAP's cloud-native dedicated serverplatform Bare Metal Cloud (BMC) is ontworpen met IaC-compatibiliteit in gedachten. BMC is volledig geïntegreerd met HashiCorp Terraform, een van de meest gebruikte IaC-tools in DevOps. Deze integratie stelt gebruikers in staat om een custom-built Terraform-provider te gebruiken om BMC-servers in minuten te implementeren met slechts een paar regels code.
Waarom Infrastructure as Code?
Infrastructure as Code is een methode om het implementeren en beheren van cloudbronnen te automatiseren via menselijk leesbare configuratiebestanden. Het speelt een cruciale rol in DevOps, waar snelheid en agiliteit van essentieel belang zijn.
Voor IaC implementeerden systeembeheerders alles handmatig. Elke server, database, load balancer of netwerk moest handmatig geconfigureerd worden. Teams gebruiken nu diverse IaC-engines om honderden servers bij meerdere providers in minuten op te starten of af te bouwen.
Hoewel er veel krachtige IaC-tools op de markt zijn, blinkt Terraform uit als een van de meest prominente spelers in het IaC-veld.
De basisprincipes van Terraform
Terraform van HashiCorp is een infrastructure-as-code-engine die DevOps-teams in staat stelt om cloud-native resources veilig te implementeren, wijzigen en versioneren. De open-source-tool is gratis te gebruiken, maar de meeste teams kiezen voor Terraform Cloud of Terraform Enterprise, die samenwerking en governance mogelijk maken.
Om met Terraform te implementeren, definiëren ontwikkelaars de gewenste resources in een configuratiebestand, geschreven in HashiCorp Configuration Language (HCL). Terraform analyseert dat bestand om een uitvoeringsplan te maken. Na bevestiging door de gebruiker, voert het het plan uit om precies wat in het configuratiebestand gedefinieerd was, in te richten.
Terraform identificeert verschillen tussen de gewenste staat en de bestaande staat van de infrastructuur. Dit mechanisme speelt een essentiële rol in een DevOps-pijplijn, waar consistentie over meerdere omgevingen cruciaal is.
Bare Metal Cloud-servers implementeren met Terraform
Terraform onderhoudt een groeiende lijst met providers die de software ondersteunen. Providers zijn custom-built plugins van verschillende serviceproviders die gebruikers initialiseren in hun configuratiebestanden.
PhoenixNAP heeft een eigen Terraform-provider: pnap. Elke Bare Metal Cloud-gebruiker kan deze gebruiken om BMC-servers te implementeren en beheren zonder de web-gebaseerde Bare Metal Cloud Portal te gebruiken. De broncode voor de phoenixNAP-provider en documentatie is beschikbaar op de officiële Terraform-providerpagina.
Terraform-voorbeeldgebruik met Bare Metal Cloud
Om BMC-servers met Terraform te implementeren, maak een BMC-account aan en installeer Terraform op je lokale systeem of remote server. Voordat je Terraform uitvoert, verzamel de benodigde authenticatiegegevens en sla ze op in het config.yaml-bestand. Je hebt de clientId en clientSecret nodig, beide vind je op je BMC-account.
Zodra alles ingesteld is, begin met het definiëren van je gewenste BMC-resources. Maak een Terraform-configuratiebestand en declareer dat je de pnap-provider wilt gebruiken:
terraform { required_providers { pnap = { source = "phoenixnap/pnap" version = "0.6.0" } } } provider "pnap" { # Configuratieopties }
De sectie gereserveerd voor configuratieopties moet de beschrijving van de gewenste staat van je BMC-infrastructuur bevatten.
Om de meest basale Bare Metal Cloud-serverconfiguratie, s1.c1.small, met een Ubuntu OS in het Phoenix-datacenter te implementeren:
resource "pnap_server" "My-First-BMC-Server" { hostname = "jouw-hostnaam" os = "ubuntu/bionic" type = "s1.c1.small" location = "PHX" ssh_keys = [ "ssh-rsa..." ] #action = "powered-on" }
De argumentnaam action duidt op energiedacties die op de server uitgevoerd kunnen worden, en omvatten reboot, reset, powered-on, powered-off, shutdown. Hoewel alle argumentnamen bijbehorende waarden moeten bevatten, hoeft het action-argument niet gedefinieerd te worden.
Om deze Bare Metal Cloud-instantie te implementeren, voer de Terraform init CLI-opdracht uit om Terraform de initialisatie te laten beginnen.
Je Terraform-configuraties moeten opgeslagen worden in een bestand met een .tf-extensie. Hoewel Terraform een domeinspecifieke taal gebruikt voor het definiëren van configuraties, kunnen gebruikers configuratiebestanden ook in JSON schrijven. In dat geval moet de bestandsextensie .tf.json zijn.
Alle Terraform-configuratiebestanden zijn herbruikbaar, schaalbaar en kunnen geversioneerd worden voor eenvoudigere teamcollaboratie aan BMC-inrichtingsschema's.
Of je nu één of honderden servers moet implementeren, Terraform en BMC maken het mogelijk. Er zijn geen limieten aan het aantal servers dat je in je configuratiebestanden kunt definiëren. Je kunt ook andere providers naast phoenixNAP gebruiken.
Voor eenvoudiger beheer van complexe setups heeft Terraform een functie genaamd modules – containers waarmee je de architectuur van je omgeving op een abstracte manier kunt definiëren. Modules zijn herbruikbare codeblokken die andere modules kunnen aanroepen die één of meer infrastructuurobjecten bevatten.
Samenwerken aan BMC-configuraties met Terraform Cloud
Zodra je hebt geleerd hoe je Terraform-configuraties schrijft en implementeert, wil je een methode instellen waarmee je hele DevOps-team efficiënter kan werken aan het implementeren van nieuwe en wijzigen van bestaande BMC-resources.
Je kunt Terraform-configuraties opslaan in een versiebeheersysteem en ze remote uitvoeren vanuit Terraform Cloud gratis. Dit vermindert de kans op het implementeren van verkeerd geconfigureerde resources, verbetert het toezicht en zorgt ervoor dat elke wijziging betrouwbaar vanuit de cloud wordt uitgevoerd.
Je kunt ook gebruikmaken van Terraform Cloud's remote state-opslag. Terraform-statebestanden koppelen Terraform-configuraties aan resources die in de echte wereld geïmplementeerd zijn. Het gebruik van Terraform Cloud voor het opslaan van state-bestanden zorgt ervoor dat je team altijd op dezelfde pagina staat.
Een ander groot voordeel van Terraform is dat alle configuratiebestanden herbruikbaar zijn. Dit maakt het repliceren van dezelfde omgeving meerdere keren extreem gemakkelijk. Door consistentie over meerdere omgevingen te handhaven, kunnen teams sneller en veiliger kwalitatieve code naar productie leveren.
Automatiseer je infrastructuur
Dit artikel gaf je een breed overzicht van hoe je Terraform's flexibiliteit kunt benutten om programmatisch te interacteren met je Bare Metal Cloud-resources. Door de phoenixNAP Terraform-provider en Terraform Cloud te gebruiken, kun je snel meerdere BMC-instanties implementeren, configureren en buiten gebruik stellen met slechts een paar regels code.
Deze geautomatiseerde benadering van infrastructuurinrichting verbetert de snelheid en agiliteit van DevOps-werkstromen. BMC, in combinatie met Terraform Cloud, stelt teams in staat om zich te richten op het bouwen van software in plaats van tijd te verspillen met wachten op handmatige inrichting van dedicated servers.
Cloud computing
- Meester worden in Sheet Metal Buigen met een Persbrake: Technieken, CNC-kracht en Industrie-inzichten
- Cloudinfrastructuur Optimaliseren Voor Pieprestaties En Efficiëntie
- Waarom IT-professionals Infrastructure Mapping Moeten Beheersen
- Is On-premises Infrastructuur Verouderd? 5 Redenen Waarom Het Nog Steeds Bestaat
- Wekelijkse Briefing: Cloudadoptie Stijgt, Governance & Innovatie Nemen Centrale Plaats In
- Infrastructure as Code: Voordelen, Uitdagingen en Best Practices
- Hoe Cloud en DevOps Moderne Softwarelevering Versnellen
- Code-Ready Containers: Een Praktische Gids voor Cloud-Native Procesautomatisering met Red Hat OpenShift
- Cloud Computing Infrastructuur: Een Professionele Gids Tot De Fundamenten
- AWS Cheat Sheet & Examen Gids: Meester Cloud Services & Certificeringsvoorbereiding
- Versnel Bare Metal Cloud-implementaties met Canonical MAAS – Geautomatiseerde serverinrichting in minuten