Mikä oli ensin - kana vai muna? Aika outo alku Infrastructure-as-Codea käsittelevälle artikkelille, eikö niin?
Mikä on muna?
Useimmiten Infrastructure-as-Code (IaC) on deklaratiivinen tapa esittää infrastruktuuria. Siinä kuvaamme tilaa, jonka haluamme saavuttaa, alkaen laitteisto-osasta ja päättyen ohjelmiston konfigurointiin. Siksi IaC:tä käytetään:
Resurssien tarjonta. Nämä ovat VM:t, S3, VPC jne. Perustyökalut työhön: terraform и Pilvenmuodostus.
Mikä tahansa koodi on git-varastoissa. Ja ennemmin tai myöhemmin ryhmänjohtaja päättää, että ne on saatettava järjestykseen. Ja hän reagoi. Ja se luo jonkinlaisen rakenteen. Ja hän näkee, että tämä on hyvä.
On myös hyvä, että se on jo olemassa GitLab и GitHub-tarjoaja Terraformille (ja tämä on Software Configuration). Heidän avullaan voit hallita koko projektia: tiimin jäsenet, CI/CD, git-flow jne.
Mistä muna tuli?
Olemme siis vähitellen lähestymässä pääkysymystä.
Ensinnäkin sinun on aloitettava arkistosta, joka kuvaa muiden arkiston rakenteen, mukaan lukien itsesi. Ja tietysti osana GitOpsia sinun on lisättävä CI, jotta muutokset suoritetaan automaattisesti.
Jos Gitiä ei ole vielä luotu?
Kuinka säilyttää se Gitissä?
Kuinka asentaa CI?
Jos otamme käyttöön myös Gitlabin IaC:n avulla ja jopa Kubernetesissa?
Ja GitLab Runner myös Kubernetesissa?
Entä Kubernetes pilvipalvelussa?
Mikä tuli ensin: GitLab, johon lataan koodini, vai koodi, joka kuvaa millaisen GitLabin tarvitsen?
Vaihe 2. Valmistamme Terraformimme kahden solmun klusterin "leivomiseen". Jos olet varma, että sinulla on tarpeeksi resursseja kaikkeen, voit ottaa automaattiset kiintiöt käyttöön:
Vaihe 8. Git-tietovarastojen tuominen oikeaan hierarkiaan Gitlab Provider -palvelun avulla.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Valitettavasti terraform GitLab -palveluntarjoajalla on kelluva vika. Sitten sinun on poistettava ristiriitaiset projektit manuaalisesti, jotta tf.state voidaan korjata. Suorita sitten komento "$make all" uudelleen
Vaihe 9. Siirrämme paikalliset tietovarastot palvelimelle.
Olemme saavuttaneet sen, että voimme hallita kaikkea deklaratiivisesti paikalliselta koneeltamme. Nyt haluan siirtää kaikki nämä tehtävät CI:hen ja painaa vain painikkeita. Tätä varten meidän on siirrettävä paikalliset osavaltiot (Terraform State) CI:lle. Kuinka tämä tehdään, kerrotaan seuraavassa osassa.
Tilaa meidän blogijotta et jää paitsi uusien artikkeleiden julkaisemisesta!