Kolejny raz podchodzę do tematu CI/CD do własnych projektów. Przeszedłem już początki GitLaba i Jenkinsa. Mam też małe doświadczenie Githubem. Z punktu widzenia każdy nich ma dyskwalifikujące wady.

GitLab - kombajn do wszystkiego niby. Z tym, że ilość potrzebnych zasobów jest jakaś absurdalna. Nie chcę marnować sprzętu i prądu żeby sobie stało. Ostatnia wersja jaką zainstalowałem wciągała wszystkie CPU jakie tylko do niej wrzuciłem nie robiąc przy tym nic pożytecznego.

Jenkins -
@Boska_Klaudia Jenkins popularny był 10 lat temu, teraz wszystko po trochu. Z rozwiązań które można u siebie postawić to chyba teraz najpopularniejszy gitlab. Jest jeszcze sporo rozwiązań w chmurze
  • Odpowiedz
Wystartowaliśmy 2. edycją programu „Szkoła Automatyzacji Sieci”.
Dlaczego warto dołączyć?
W skrócie:

✅Tylko potrzebne informacje. 0 akademickich i czysto teoretycznych rozważań
✅Program oparty o projekt Twojej własnej automatyzacji. Ucząc się, rozwiązujesz SWÓJ realny problem z sieci.
✅Jeden program, w którym poznasz 4 narzędzia
✅Świetne referencje!

Sprawdź przykładowe lekcje, opinie uczestników i dołącz na https://showroute.pl/sas/

#siecikomputerowe #ansible #git #python #cisco #juniper #docker #cicd #devnet #devops
Showroute_pl - Wystartowaliśmy 2. edycją programu „Szkoła Automatyzacji Sieci”. 
Dlac...

źródło: Reklama-SAS-roboty

Pobierz
  • Odpowiedz
Mam taką komendę:

npx nx build webaplikacja --configuration production --skip-nx-cache
Jak zrobić, żeby nie było outputu do stdout przy budowaniu webaplikacji, tylko do jakiegoś wskazanego przeze mnie pliku logów? W GitLab CI/CD nie mieści mi się output z budowania aplikacji, przez co przerywa logowanie na stdout i nie mogę zdiagnozować, czemu mi się wywala proces budowania. Pomoże ktoś?

#nodejs #node #programowanie #gitlab #gitlabcicd #cicd
Jaki jest najlepszy toolset do ci/cd?

1. Chcę robić build i deploy statycznej strony po każdym mergu commita. Czyli typowe budowanie strony webowej napisanej w angularze i wgranie na S3 AWS.

2. Chcę zrobić deployment backendu #aws napisanego w #nodejs z użyciem #serverless.

3. Chcę robić build i testowanie firmware'u.

Mam wytypowanych kilka kandydatów do CI/CD. Nie chcę mieć maca na którym chodzi jenkins. Co byście polecili?

Github Actions #githubactions
#
@Gennwat: @MialemNieWracac: @tos-1_buratino: @Gomusss:

Ostatecznie wybrałem Github do trzymania kodu. Napisałem sobie kilka pipelinów pod Github Actions, które do sprzężyłem z AWS za pomocą OIDC. Nie mam nigdzie trzymanych secretów i o nic nie muszę się martwić. Deploy startowego projektu angularowego kosztuje 1m 53s łącznie z testami, a zmiany są widoczne chwilkę później pod adresem www. Coś pięknego. Dzięki za pomoc i dobre słowo.
Część porad jak lokalny
  • Odpowiedz
Mirki, jaki jest najprostszy i wg best practices pipeline dla Jenkinsa i Terrraforma ktory uzywa kilku branches: dev, stage i prod?
Mam repo z kodem terraforma i chcialbym deployowac ten kod gdzie indziej zaleznie od tego jaki jest branch np. dev idzie tylko na srodowisko testowe, stage na stage i prod tylko za approvalem na produkcje. W gitlabie robilem to w jednym pipelienie z uzyciem environments i terraform workspaces. Ma ktos jakis
@wKontenerach: Czy wiesz, co możesz zautomatyzować w projektach IT?
Tak naprawdę wszystko, co tylko się da.

W cyklu wytwarzania oprogramowania z powodzeniem możesz zautomatyzować:
✓ Proces scalania (merge) kodu źródłowego
✓ Uruchamianie testów: jednostkowych, integracyjnych, end-to-end itd.
✓ Skanowanie pod kątem bezpieczeństwa
✓ Provisioning infrastruktury
✓ Wdrożenia na wiele środowisk
✓ Weryfikację poszczególnych wdrożeń
✓ Wysyłanie powiadomień
✓ Przydzielanie dostępów
✓ Generowanie raportów
✓ ... i wiele, wiele więcej.

Jeśli chcesz
@qmar: konflikty to ma rozwiązać wystawiający PR. Automatyzacja merge polega na tym, że nie potrzeba kogoś kto ręcznie klepnie 'merge', tylko ustawiasz merge checki (np. 2 approvy, zero disapprovów, przechodzący build i testy) i merge robi się automatycznie kiedy zostają spełnione
  • Odpowiedz
Mirki DevOpsi pytanko - dev team ma pipeline ktory stawia apke na k8s i chca dodac do tego 3rd party load balancer/ WAF. Teraz pytanko, czy ten WAF i Ingress powinien byc w tym samym pipeline co apka czy oddzielnym?
W sensie, 1 pipeline ktory stawia apke, deployuje do k8s, testuje a potem stawia ten ingress i dodaje WAF, czy moze oddzielny pipeline dla ingress i WAF?
#devops #cicd #jenkins
@ksos: loadbalancer np. metallb i ingress-nginx wdrażasz przed aplikacjami, aplikację najlepiej wdrażać przy pomocy helm chart gdzie określasz jak ma być skonfigurowany ingress tz. wystawiana aplikacja na świat
  • Odpowiedz
@ksos: ja to robie na osobnej warstwie, mam przewaznie infra as a code (tu networki/sqlki/aks/gke etc w terraformie) potem mam env as a code (gdzie mam w terraformie trzymanie stanu yamli/czartów dla aksów i inne konfigi chociazby schema bazek) no i deployment appek. polecam takie rozdzielenie bo nie ma bajzlu i latwiej potem developerom zrobic jakis trigger na podstawie branczy/contentu
  • Odpowiedz
@Luk_1mex: bardzo przyjemnie mi się uczyło gitlab CI, na Twoim miejscu wybierałbym CI gdzie możesz całe pipeline'y trzymać w postaci kodu (best practice), osobiście unikałbym jenkinsa (w nowych projektach praktycznie nie widziałem, przeważnie w starych legacy projektach widywałem go)
  • Odpowiedz
Hej
Potrzebuję szybko nauczyć się backendu do projektu prywatnego. Nie potrzebuję informacji jak dokładnie coś zrobić (np jak napisać endpoint) tylko high level opis jak coś zrobić i na co zwrócić uwagę. Wstępny stack to AWS + Serverless + lambda bo to używam w pracy i trochę znam. Jednak pracuję na froncie. Jest jakiś kurs dla ludzi którzy już coś liznęli?

1. zaprojektować bazę danych i tabelę (Struktrura danych), migracje jakieś
2.
@its_over_for_chlop: Do prywatnego polecam Firebase. Problem masz tylko z:
1. migracją (wersjonujesz dokumenty osobno)
2. wersjonowanie API(chyba najlepiej doklejać do nazwy enpointów wersję)

wszystko inne masz rozwązane i gotowe
  • Odpowiedz
Szukam książek, wykładów, jakichś materiałów na temat szeroko pojętego CI/CD. Nie chodzi mi o techniczne aspekty implementacji pipelinów z tym czy innym narzędziem, tylko o omówienie tematów pod kątem projektowym, dobrych praktyk, automatyzacji testów, wdrożeń itp. Ktoś coś?

#cicd #devops #programowanie #programista15k
@Priya: Prawdopodobnie nie znajdziesz nic takiego, dobre pipeline to w 90 procentach dobre skrypty. Ile firm tyle będziesz miał różnych podejść do deploy, czy nawet testów. Poza tym dużo zależy od twojej architektury i ich ograniczeń. Znajdziesz pewnie jakieś źródła w necie ale nie ma żadnych standardów odnośnie pipelinow.
  • Odpowiedz
Jestem totalnym laikiem jeżeli chodzi o Azure i CICD. Potrzebuje wykonać taki pipeline który będzie kopiował kod z masterbrancha, tworzył nowy branch, wrzucał tam kwerendy z mastera i edytował odpowiednia pola takie jak 'nazwa bazy', 'nazwa tabeli' wg. wcześniej wpisanych zmiennych. Czy w ogóle jest takie coś możliwe? Najlepiej żeby potem te kwerendy odpalił na bazie danych :D

#azure #cicd
#programowanie
Czego używacie w robocie, prywatnie do automatyzacji deploymentu, monitorowania etc.?
Kurcze chce sobie postawić na paru serwerach mnóstwo dockerów, ale chciałbym to jakoś monitorować, zautomatyzować.
W pracy mam k8s i mi to wystarczy do zabawy, spróbowałbym czegoś nowego, opensource dużżo mniejszego, myślałem nad k3s, ale znowu.. mam dość chwilowo kubernetesa ( ͡° ʖ̯ ͡°)

Serwery będę miał lokalnie więc ecs również odpada i tego typu rzeczy, musi być
Chcę zrobić apkę w Reactcie/Vue + backend w Nest.js + jeszcze jakaś baza. Wszystko ma być zdeployowane na mojego VPSa. Czy w takim razie najwygodniej będzie zrobić monorepo z dockerfilem i np. podpiąć się jakimś CI/CD typu CircleCI pod merge do brancha releasowego i zbudować gotowy obraz zawierający pobrane wszystkie zależności projektu itd. a następnie przez SSH wrzucić to na VPS i zaktualizować kontener?

Może źle o tym myślę i powinienem to
@teekop: Cześć, zastanawiam się nad podobnym setupem (Java w backendzie ale przy kontenerach w sumie nie ma to większego znaczenia). Nie pomogę do końca, ale dla utrudnienia mogę dorzucić garść przemyśleń ( ͡° ͜ʖ ͡°)

Na razie doszedłem do tego, że na pojedynczej maszynie nie ma sensu stawiać pełnego Open Shifta OKD (bo najmniejszy klaster potrzebuje chyba 5 albo 6 maszyn) ( ͡° ͜ʖ ͡
  • Odpowiedz
w jaki sposob moge w Gitlab CI cachowac node_modules miedzy roznymi kontenerami? Korzystam obecnie z docker:dind i taski sobie wykonuje w roznych kontenerach, ale to chyba mi uniemozliwa korzystanie z cache... moj .gitlab-ci.yml wyglada mniej wiecej tak:

image: docker/compose:1.29.2

services:
- docker:dind

stages:
- build
- test

frontend-install-dependencies:
image: node:lts-alpine
stage: build
cache:
key: $CI_COMMIT_REF_SLUG-$CI_PROJECT_DIR
paths:
- node_modules/
script:
- yarn install --progress=false
artifacts:
paths:
- node_modules/
only:
changes:
- yarn.lock

frontend-jest-unit-tests:
hejo. Mam node w jenkinsie z jednymi credentialsami dodanymi. Chciałbym dodać możliwość logowania się na tego node z innymi credentialsami na innego usera. Czy da się to zrobić? Bez jakby dodawania drugiego node różniącego się jedynie credentialsami?
wiem, że to średnie rozwiązanie dodawać drugiego usera do tego samego noda, lepiej byłoby pewno zrobić jednego, który by wykonywał polecenia jako jeden/drugi, ale tak mam zrobić i już :/

#devops #jenkins #cicd
via Wykop Mobilny (Android)
  • 0
@TMBRK: i? Nie muszą być przecież hardcodowane. Zrób sobie jakiegoś ifa i w nim wybieraj który credential zapisany w jenkins ma być użyty w jobie tym razem.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@TMBRK: a w ogóle to ma wrażenie że piszesz o node Jenkinsa a masz na myśli jakiś serwer docelowy na który sięgasz z node Jenkins.
  • Odpowiedz
#gitlab #cicd mam porobione „environments” w gitlabie dla środowisk gdzie builduje i deployuje aplikacje. Wiem, że mogę zrobić powiadomienia e-mail na podstawie main branch/protected branches. Pytanie: czy jest jakiś sposób aby stworzyć powiadomienie E-mail gdy pipeline będzie uruchomiony dla danego środowiska?(tylko produkcja)
  • Odpowiedz
siema.
Chciałbym mieć możliwość edycji url do nexus repo z poziomu zmiennych cicd #gitlab. Nie wiem jednak jak to zrobić z poziomu samego pliku yaml, nie stage.
Wiem, że z poziomu samego stage są one dostępne jako zmienne środowiskowe, jednak w przypadku samego yamla tutaj rozumiem, że zostanie to potraktowane jako string. Te jinjowe nawiasy równiez nie działają :/

image: nexus.url.pl:9983/maven-jdk-11

stages:
- pr_compile
- pr_test
- build

#
TMBRK - siema.
Chciałbym mieć możliwość edycji url do nexus repo z poziomu zmiennych...

źródło: comment_1626982404S1fo4F0cHf6G3Cd5H4OpCo.jpg

Pobierz
@patrolez: tak, tylko to działa z poziomu stage, script jak sam widzisz. Mi zależy na umieszczeniu tego już na poziomu image przed uruchomieniem stage
  • Odpowiedz
https://docs.gitlab.com/ee/ci/variables/#add-a-cicd-variable-to-a-project


@TMBRK: Zawsze trzeba pamiętać, że jest kilka poziomów "preprocesingu"/ewaluacji takich koncepcji jak "zmienna"/"podstawianie".

W .gitlab-ci.yml masz raz to robione na poziomie samego interpretera GitLab Runnera, a raz możesz mieć to np. jako rozwikływane dopiero w "scripts" przez shell, jeżeli będzie to odpowiednio escapowane.

@patrolez: tak, tylko to działa z poziomu stage, script jak sam widzisz. Mi zależy na umieszczeniu tego już na poziomu image przed uruchomieniem stage


Tutaj inaczej
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Siemano, mam pytanie dotyczące #cicd.
Wyszło tak, że muszę lekko zmienić proces deployu jedynie na produkcję. Nie chcę wchodzić w szczegóły, ale teraz to środowisko będzie się różniło nieco od innych (tymczasowo). Przygotowałem zmianę na osobnym branchu i cholera, chciałbym tą zmianę jakoś przetestować przed merge, bo to jednak prod. Używam do procesu CICD gitlaba. Myślałem, by całe środowisko odpalić na laptopie, mimo tego, że dosyć dużo tych komponentów. Dodatkowo postawiłbym
Mozesz sobie runnera na laptopie postawic, bedziesz miec go pod innym tagiem, caly gitlab to chyba lekki overkill:) malo opisales o srodowisku i zmianie, ale jesli jestes w stanie postawic lokalnie podobnego jbosa, to pewnie styknie :)
  • Odpowiedz
@TMBRK: ja bym jednak cisnął tę zmianę na niższym środowisku. Pre-prod/Staging przecież jest właśnie po to, aby testować deploy.
Dodatkowo zmianę przecież możesz wycofać po przetestowaniu.
  • Odpowiedz
#gitlab #devops #cicd cześć, miałbym pytanko o jedną kwestie. Mianowicie chciałbym po stage buildującym otagować bieżący commit z którego uruchamiany jest pipeline. Jak mogę to zrobić? Próbowałem coś takiego:
Git-remote ser url origin
Git tag -a -m
Git push origin
Efekt jaki chciałbym uzyskać to po udanym deployu chciałbym aby na repo pojawił się tag przy commicie z którego uruchamiany był pipeline. Ktoś coś?