Serverovny.cz/Fórum/Jak nastavit CI/CD pipeline pro svůj server?

Jak nastavit CI/CD pipeline pro svůj server?

Zdravím všechny! Mám dotaz ohledně nastavení CI/CD pipeline pro můj server. Už nějakou dobu se snažím proniknout do světa neustálé integrace a dodávání, ale přijde mi to dost složité. Nejdřív jsem myslel, že to zvládnu s pár skripty, ale teď vidím, že je toho daleko víc. Jaké nástroje vlastně potřebuju? Slyšel jsem o Jenkinsu, GitLab CI a Travis CI, ale nevím, co by pro mě bylo nejlepší. Mám na serveru aplikaci napsanou v Node.js a chtěl bych, aby se po každém pushi na GitHub automaticky spustily testy a pokud projdou, tak se nový kód nasadil na server. Jak mám začít? Musím si vytvořit nějaký soubor s konfigurací? Co všechno musím mít nainstalované na serveru? A co třeba bezpečnost? Jak zabezpečit proces nasazení, aby se nedostal do nesprávných rukou? Pokud byste mohli poradit krok za krokem nebo aspoň doporučit nějaké užitečné články a tutoriály, byl bych za to moc vděčný. Děkuju!

150 slov
1.5 minut čtení
25. 5. 2024
Vlastimil Kořínek

Nejdřív si vyber, jaký nástroj chceš použít. Jenkins je hodně rozšířený a má spoustu pluginů, ale může být trochu složitější na nastavení. GitLab CI je fajn, pokud máš repozitář na GitLabu, a je docela intuitivní. Travis CI je zase super pro projekty na GitHubu, ale můžeš mít omezení s počtem buildů.

Pro Node.js aplikaci si budeš potřebovat napsat konfigurační soubor - pro GitHub Actions to bude .yml soubor v .github/workflows, pro Travis CI travis.yml a tak podobně. Tím vlastně říkáš, co se má stát po každém pushi. Určitě si nastav unit testy, aby se ti automaticky spouštěly před nasazením.

Na serveru musíš mít nainstalovaný Node.js a možná i nějaký balíčkovací systém jako npm nebo yarn, záleží, co používáš. Ohledně bezpečnosti – klíče pro přístup bys měl mít uložené v prostředí, ne přímo ve skriptech. Takže používat např. Secrets v GitHubu nebo proměnné v Jenkinsu.

Můžeš najít spoustu tutoriálů na YouTube nebo blogy, kde lidi popisují svoje zkušenosti s CI/CD. Klidně zkus i nějaké komunity na Redditu nebo jiných fórech, tam ti určitě poradí víc lidí. Držím palce!

180 slov
1.8 minut čtení
19. 1. 2025
Věra Kratochvílová

Nejdřív si ujasni, co vlastně chceš. Jestli chceš automatizovat nasazení po každém pushi na GitHub, tak je super volba GitHub Actions. Je to jednoduchý a integrovaný přímo s GitHubem. Můžeš si tam vytvořit workflow soubor, kde napíšeš, co se má dít - spustíš testy a pokud projdou, tak nasadíš na server.

Na serveru budeš potřebovat nainstalovat Node.js a nějaký nástroj pro nasazení, jako třeba PM2 nebo Docker, pokud to chceš mít víc kontrolovaný. Věnuj pozornost i zabezpečení - ideálně používej SSH klíče pro přístup na server a ne nějaký hesla. Můžeš si nastavit webhook v GitHubu, aby ti server dostával notifikace o pushích a pak spouštěl skripty.

Někde jsem viděl dobré tutoriály k GitHub Actions, tak se podívej na jejich oficiální dokumentaci. S Jenkins je to víc komplikovaný a potřebuješ ho mít někde hostovaný, což může být zase extra práce. Zkus začít s tím nejjednodušším a pak uvidíš. Hodně štěstí.

149 slov
1.5 minut čtení
19. 1. 2025
Kristýna Hamplová
Serverovny.cz/Články/DevOps a servery
Jak zavést CI/CD pipeline pro automatizovanou správu serverůObjevte, jak zavést CI/CD pipeline pro efektivní správu serverové architektury. Naučte se klíčové kroky a techniky pro automatizaci nasazení a kontinu...
1000 slov
10 minut čtení
7. 11. 2020
David Horák
Přečíst článek
Podobné otázky