Local- ja remote-exec-provisionerit
Toteuttakaa `local-exec`- ja `remote-exec`-provisionerit komentojen suorittamiseen Terraformia ajavalla koneella tai luoduissa resursseissa.
Local- ja remote-exec-provisionerit on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Tutustuminen Terraform Provisioners -toimintoihin
Mitä jos teidän on suoritettava komentosarja tai komento sen jälkeen, kun Terraform on luonut resurssin? Tällöin provisioners tulevat avuksi!
Provisioners-toimintojen avulla voitte suorittaa toimintoja paikallisella koneella tai etäresurssissa osana resurssin elinkaarta. Ne yhdistävät infrastruktuurin luomisen ja ohjelmiston alkuasetusten määrittämisen.
Ajatelkaa niitä koukkuina, joiden avulla voitte mukauttaa resurssinne heti niiden luonnin jälkeen.
`local-exec`: suorita paikallisesti
local-exec-provisioner suorittaa komennot koneella, jolla Terraformia suoritetaan.
Se on hyödyllinen esimerkiksi seuraavissa tehtävissä:
- Asetustiedostojen luominen paikallisesti.
- Paikallisten komentosarjojen tai työkalujen käynnistäminen.
- Siivoustoimien suorittaminen resurssin tuhoamisen jälkeen.
Se sopii erinomaisesti toimintoihin, joita ei tarvitse suorittaa itse pilviresurssissa.
`local-exec`: perusesimerkki
Katsotaan, kuinka local-exec luo yksinkertaisen tiedoston paikalliselle koneellenne null-resurssin luonnin jälkeen.
null_resource on paikkamerkki, joka ei luo mitään pilveen mutta on kätevä provisioners-toimintojen käynnistämiseen.
resource "null_resource" "local_file_creator" {
provisioner "local-exec" {
command = "echo 'Local file created by Terraform!' > local_output.txt"
}
triggers = {
always_run = timestamp()
}
}Milloin `local-exec`-toimintoa käytetään
local-exec sopii erinomaisesti seuraaviin käyttötarkoituksiin:
- Käyttöönoton jälkeiset ilmoitukset: Lähettäkää sähköposti- tai Slack-viesti.
- Paikallisten tiedostojen luominen: Luokaa inventaariotiedostoja Ansiblea tai muita työkaluja varten.
- Käyttöönottoa edeltävät tarkistukset: Suorittakaa paikallisia validointikomentosarjoja.
- CI/CD:n käynnistäminen: Käynnistäkää putki infrastruktuurimuutosten jälkeen.
Muistakaa, että se toimii sijainnista, jossa suoritatte komennon terraform apply.
`remote-exec`: suorita resurssissa
Toisin kuin local-exec, remote-exec-provisioner suorittaa komennot itse etäresurssissa.
Tämä on tärkeää uuden palvelimen alkuasetuksissa, kuten seuraavissa tehtävissä:
- Ohjelmistopakettien asentaminen (esim. verkkopalvelin tai tietokanta).
- Käyttöjärjestelmän asetusten määrittäminen.
- Sovelluskoodin käyttöönotto.
Se edellyttää verkkoyhteyttä kohderesurssiin (esimerkiksi SSH-yhteyttä Linuxille tai WinRM-yhteyttä Windowsille).
Yhteyden muodostaminen `remote-exec`-toimintoa varten
Jotta remote-exec toimii, Terraformin on muodostettava yhteys resurssiin.
Yleisiä yhteystyyppejä ovat:
- SSH: Linux-instansseille, ja se edellyttää yksityistä avainta.
- WinRM: Windows-instansseille, ja se edellyttää kirjautumistietoja.
Yhteystiedot määritetään yleensä provisioner-lohkossa tai ne peritään resurssilta.
`remote-exec` EC2-instanssissa
Näin käytätte remote-exec-toimintoa Apachen asentamiseen uuteen AWS EC2 -instanssiin.
Huomautus: Tämä edellyttää, että EC2-instanssi on otettu käyttöön ja että siihen voi muodostaa yhteyden SSH:lla. Oletamme yksinkertaisuuden vuoksi, että käytettävissä on olemassa oleva avainpari ja suojausryhmä.
resource "aws_instance" "web_server" {
ami = "ami-0abcdef1234567890" # Replace with valid AMI ID
instance_type = "t2.micro"
key_name = "my-ssh-key" # Replace with your SSH key name
vpc_security_group_ids = ["sg-0123456789abcdef0"] # Replace with your SG ID
provisioner "remote-exec" {
inline = [
"sudo yum update -y",
"sudo yum install -y httpd",
"sudo systemctl start httpd",
"sudo systemctl enable httpd"
]
connection {
type = "ssh"
user = "ec2-user"
private_key = file("~/.ssh/my-ssh-key.pem")
host = self.public_ip
}
}
}Milloin `remote-exec`-toimintoa käytetään
remote-exec sopii erinomaisesti seuraaviin käyttötarkoituksiin:
- Palvelinten alustaminen: Verkkopalvelinten, tietokantojen tai Dockerin asentaminen.
- Sovelluksen käyttöönotto: Sovelluskoodin kopioiminen ja määrittäminen.
- Asetustenhallinta: Ansible-playbookien tai Chef-reseptien suorittaminen suoraan.
- Luonnin jälkeinen validointi: Palveluiden toiminnan tarkistaminen uudessa instanssissa.
Se on ensisijainen valinta palvelimen alkuperäisen tilan määrittämiseen.
Provisionerit tuhottaessa
Provisionerit voivat suorittaa toimintoja myös resurssia tuhottaessa. Tämä on hyödyllistä siivoustehtävissä.
Voit määrittää provisioner-lohkon sisällä asetuksen when = destroy. Näin voit esimerkiksi poistaa instanssin kuormantasaajasta ennen sen lopettamista.
Myös on_failure-toiminnan voi määrittää. Se määrää, mitä tapahtuu provisioner-komennon epäonnistuessa. Oletusarvoisesti Terraform ilmoittaa virheestä.
Provisioner-tietovisa
Mitä provisioneria käyttäisit verkkopalvelimen, kuten Nginxin, asentamiseen juuri luotuun virtuaalikoneinstanssiin?
Provisionerit: paikallinen ja etäkäyttö
Olemme tutustuneet Terraformin provisionereihin, tehokkaisiin työkaluihin komentojen suorittamiseen resurssin elinkaaren aikana.
local-execsuorittaa komennot koneella, jolla Terraformia ajetaan. Se sopii esimerkiksi paikallisiin skripteihin ja ilmoituksiin.remote-execsuorittaa komennot suoraan provisioidussa resurssissa. Se sopii erityisesti palvelinten alustamiseen ohjelmistoilla tai määrityksillä.
Provisionerit auttavat yhdistämään infrastruktuurin käyttöönoton ja sovelluksen alustavan määrityksen. Seuraavaksi perehdymme edistyneisiin tilanhallintatekniikoihin!
Opi DevOps-bootcamp tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 142
- Oppitunnit
- 568
Usein kysytyt kysymykset
Onko oppitunti ”Local- ja remote-exec-provisionerit” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Local- ja remote-exec-provisionerit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Local- ja remote-exec-provisionerit”?
Toteuttakaa `local-exec`- ja `remote-exec`-provisionerit komentojen suorittamiseen Terraformia ajavalla koneella tai luoduissa resursseissa. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Local- ja remote-exec-provisionerit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä DevOps-bootcamp-oppitunnilla?
Kyllä. Jokainen DevOps-bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Tietojen hakeminen tietolähteillä
- Local- ja remote-exec-provisionerit
- Null-resurssit ja triggerit
- Ulkoisen datan ja mallien käyttö