Frostmoln-migraatio Terraformilla
Jos hallitset infrastruktuuria jo Terraformilla toisessa pilvessä, fm-CLI voi muuntaa kyseisen konfiguraation Frostmoln-tarjoajalle puolestasi. Se kirjoittaa uudelleen sen, mikä kartoittuu siististi, ja — mikä tärkeintä — raportoi jokaisen resurssin ja attribuutin, jota Frostmoln ei vielä tue, jottei mitään katoa hiljaisesti.
Tuetut lähdepilvet: Amazon Web Services (AWS), Microsoft Azure, Google Cloud (GCP) ja Oracle Cloud Infrastructure (OCI).
Mitä muunnin tekee
- Säilyttää rakenteesi — tiedosto- ja moduulirakenteesi säilyy; jokaisesta lähdetiedostosta tulee vastaava Frostmoln-konfiguraatio samaan paikkaan.
- Kirjoittaa uudelleen sen, mikä kartoittuu siististi — instanssista tulee esimerkiksi
frostmoln_instance, VPC:stä tuleefrostmoln_vpcja suojausryhmästä tuleefrostmoln_security_groupsekä sen erilliset säännöt. - Ei koskaan arvaa hiljaisesti — kun arvoa ei voida johtaa, alkuperäinen säilytetään ja havainto kirjataan; tukematon kohta kommentoidaan pois paikoilleen grep-haettavan merkin taakse sen sijaan, että se katoaisi.
- Raportoi kaiken — ajo tulostaa yhteenvedon jokaisesta havainnosta vakavuusasteen mukaan ryhmiteltynä ja voi kirjoittaa täyden JSON-raportin.
Vain konfiguraatio: tilan (state) migraatio on rajattu ulkopuolelle. Muunnin lukee .tf-tiedostosi ja kirjoittaa uudet — se ei koskaan koske Terraform-tilaan eikä nykyiseen pilveesi.
Asennus
Muunnin on sisäänrakennettu fm-CLI:hin — katso fm CLI -opas asentaaksesi sen. Ylimääräistä lisäosaa ei tarvita.
Suorita se
Osoita komento sen repositorion juureen, joka sisältää olemassa olevan Terraformisi:
fm terraform convert ./infraOletuksena tämä suoritetaan täysin offline-tilassa — tiliä eikä verkkoa tarvita — ja muunnettu konfiguraatio kirjoitetaan hakemistoon ./infra/frostmoln.
Osoita repositorion juureen yksittäisen ympäristöhakemiston sijaan. Jokainen .tf-tiedostoja sisältävä hakemisto muunnetaan yhdellä ajolla, ja moduulilähteet kuten ../modules/network ratkeavat vain, kun jaetut moduulit ovat muunnettavan puun sisällä. Kohdehakemisto suljetaan pois syötteestä, joten ajon toistaminen on turvallista.
Valitsimet
| Valitsin | Mitä se tekee |
|---|---|
--provider | Lähdepilvi: auto (oletus), aws, azure, gcp tai oci. auto tunnistaa sen konfiguraatiosta. |
--out | Tulostushakemisto (oletus: <dir>/frostmoln). |
--report | Kirjoita täysi havaintoraportti JSON-muodossa tähän polkuun. |
--online | Hae ajantasaiset luettelon arvot (flavors, images, alueet) todennetun Frostmoln-tilisi kautta sen sijaan, että jättäisit paikkamerkit. Vaatii fm auth login (tai API-avaimen). |
--force | Korvaa ei-tyhjä tulostushakemisto. |
# Pakota lähdetarjoaja ja valitse tulostushakemisto
fm terraform convert ./infra --provider aws --out ./frostmoln
# Hae ajantasaiset luettelon arvot ja tallenna raportti
fm terraform convert ./infra --online --report report.json--online-valitsimella muunnin hakee todelliset flavors-, images- ja aluearvot tililtäsi ja täyttää ne. Jos luettelo ei ole tavoitettavissa, se palautuu samoihin paikkamerkkeihin kuin offline-ajo ja tulostaa varoituksen — se ei koskaan anna muunnoksen epäonnistua tästä syystä.
Tulosteen lukeminen
Kaksi merkkiä osoittaa kaiken, mikä vaatii huomiotasi. Etsi ne komennolla grep:
grep -rn FM-TODO ./infra/frostmoln # täytettävät luettelon arvot
grep -rn FM-CONVERT ./infra/frostmoln # pois kommentoitu tukematon konfiguraatioFM-TODO— paikkamerkki, jossa tarvitaan ajantasaista luettelon arvoa (flavor, image tai alue), mutta jota ei ratkaistu. Korvaa se todellisella arvolla;fm compute flavor list,fm compute image listja tietolähdefrostmoln_regionsauttavat löytämään sellaisen. Ajaminen--online-valitsimella täyttää useimmat näistä automaattisesti.FM-CONVERT— jotain, joka vaatii huomiotasi. Konfiguraatio, jota Frostmoln ei vielä tue, kommentoidaan pois paikoilleen (ei koskaan katoa), jotta voit päättää, mitä haluat tehdä sillä: poistaa sen tai luoda toiminnan uudelleen toisella tavalla. Merkintä lisätään myös lohkoihin, jotka jäivät toimimaan mutta kuuluvat yhä vanhaan pilveesi (katso alta), sekä arvoihin, jotka kannattaa tarkistaa.
Lohkot, jotka tarvitsevat yhä vanhan pilvesi
Kaikkia resursseja Frostmoln ei voi muuntaa — identiteetintarjoajan sovellusrekisteröinti, pilvikohtainen hätäuloskäynti, repositorio- tai putkimäärittely. Ne kopioidaan muuttumattomina ja toimivat edelleen, ja kukin merkitään ja lasketaan yhteenvedossa erikseen. Ne ovat se osa konfiguraatiotasi, jota migraatio ei saa yksin valmiiksi: päätä kunkin kohdalla, jääkö se paikalleen vai korvataanko se.
Mitä tulostehakemistoon päätyy
Tuloste sisältää Terraform-tiedostosi — .tf, .tf.json, .tfvars, .tfvars.json — sekä jokaisen tiedoston, jonka konfiguraatiosi todella lukee funktiolla file(), templatefile() tai vastaavalla: user_data-skriptin, cloud-init-mallin, käytäntödokumentin, julkisen SSH-avaimen. Ne kopioidaan sellaisenaan, koska muunnettu konfiguraatio viittaa niihin edelleen.
Mitään muuta lähdepuusta ei kopioida, ja jokainen ohitettu tiedosto luetellaan info-tason havaintona. Tulostehakemisto on uusi sijainti, jota et ehkä ole lisännyt gitignoreen ja jonka saatat hyvinkin jakaa kollegalle, joten muunnin ei hiljaisesti monista sinne editoriasetuksiasi, git-koukkujasi tai asiaankuulumattomia datatiedostoja.
Muuttujatiedostot kopioidaan, ja niissä on yleensä salaisuuksia
.tfvars-tiedostot kopioidaan sellaisenaan — muunnettu konfiguraatio tarvitsee niiden arvot — ja jokaisesta annetaan varoitus, joka nimeää tiedoston. Muuttujatiedostoissa säilytetään tavallisesti tunnuksia. CLI luo tulostehakemiston vain sinun luettavaksesi, mutta tarkista oikeudet uudelleen ennen kuin siirrät, committaat tai jaat sen.
Havainnot ja vakavuusasteet
Jokainen ajo tulostaa yhteenvedon, jossa kullakin havainnolla on vakavuusaste:
| Vakavuusaste | Merkitys |
|---|---|
| blocker | Muunnettu konfiguraatio ei läpäise komentoa terraform validate ennen kuin toimit — pakollinen arvo puuttuu tai rakennetta ei voida esittää. |
| warning | Muunnettu, mutta toimintaerolla, joka kannattaa tarkistaa (esimerkiksi oletus, joka poikkeaa lähdepilvestä). |
| info | Tiedoksi — ohitettu tiedosto, poistettu resurssi jolla ei ole vastinetta, ja niin edelleen. |
Anna --report report.json saadaksesi täyden koneluettavan luettelon havainnoista.
Paluukoodit
| Koodi | Merkitys |
|---|---|
0 | Muunnettu puhtaasti (info- ja warning-havainnot antavat silti arvon 0). |
2 | Muunnettu, mutta blocker-havaintoja on — tuloste kirjoitetaan silti, mutta tarkista estot ennen käyttöönottoa. |
1 | Käyttö-, I/O-, API- tai todennusvirhe — mitään käyttökelpoista ei kirjoitettu. |
Estot hylkäävät validoinnin tarkoituksella
Estot kirjoitetaan merkkeinä, jotka saavat komennon terraform validate epäonnistumaan. Tämä on tahallista: et voi koskaan ajaa komentoa terraform apply suunnitelmalle, jonka muunnin jo tiesi puutteelliseksi. Ratkaise jokainen esto — täytä FM-TODO-arvot ja käsittele FM-CONVERT-lohkot — aja sitten terraform validate uudelleen, ja vasta sitten terraform plan.
Mitä muunnetaan, pilvittäin
Tarkka kartoitus — jokainen resurssityyppi ja attribuutti, ja mitä kullekin tapahtuu — julkaistaan matriisina pilveä kohti (englanniksi):
Katso matriisihakemisto kaikkien neljän osalta.
Seuraavat vaiheet
- Muunna:
fm terraform convert ./infra. - Ratkaise
FM-TODO- jaFM-CONVERT-merkit tulosteessa. - Aja
terraform init && terraform validatetulostushakemistossa. - Aja
terraform planja tarkista se ennen komentoaterraform apply.
Aiheeseen liittyvää
- Terraform-tarjoajan yleiskatsaus
- Aloitus Terraformilla
- Terraform Provider Reference (englanniksi)
- fm CLI -opas
Tavaramerkit
Frostmoln on riippumaton pilvipalveluntarjoaja ja kilpaileva vaihtoehto Amazon Web Servicesille, Microsoft Azurelle, Google Cloudille ja Oracle Cloudille. Frostmoln ei ole sidoksissa mihinkään niistä, eivätkä ne ole hyväksyneet tai sponsoroineet sitä. AWS, Azure, Google Cloud ja Oracle Cloud ovat omistajiensa tavaramerkkejä; kaikki viittaukset ovat nimeäviä ja tarkoitettu ainoastaan yhteentoimivuutta varten.