Alpine Linux najlepszym przyjacielem kontenerów

Alpine Linux najlepszym przyjacielem kontenerów

Alpine Linux najlepszym przyjacielem kontenerów

Czy ma znaczenie, jaki obraz wyjściowy użyjemy do budowy naszego kontenera? Mało kto zaczyna od pustego kontenera. Zazwyczaj jako bazę bierzemy taki, który zawiera jedną z popularnych dystrybucji Linuksa. Czy ma znaczenie jaka to będzie dystrybucja? Jak się okazuje ogromne. Dlatego ja staram się budować swoje kontenery przy pomocy obrazów, które zostały stworzone na bazie Alpine Linux.

Czytaj dalej
GitLab - aktualizacja kontenera bazy danych

GitLab – aktualizacja kontenera bazy danych

GitLab - aktualizacja kontenera bazy danych

Ostatnio chciałem dokonać aktualizacji GitLab-a w moim domowym labie. Nie wyszło. Podnosząc wersję oprogramowania GitLab-a, od dwóch lat nie aktualizowałem wersji bazy danych, która jest niezbędna do prawidłowego działania. O ile wersja GitLab 13.1.4 nadal działała z PostgreSQL 9.6.2 (mimo że w dokumentacji jest zapisane, że to od dawna wersja niewspierana), to wersja 13.2 już ze starą bazą uruchomić się nie chciała. Aktualizacja bazy nigdy nie należy do prostych zadań. Pokażę Ci, w jaki sposób ja podszedłem do tego zadania i wykorzystałem dobrodziejstwo kontenerów. Nie jest to metoda zgodna z zaleceniami, które znajdziesz w dokumentacji, ale działa. I moim zdaniem do zastosowań w labie jest najprostsza i najszybsza. Aktualizacja kontenera bazy danych okazała się dzięki temu całkiem szybka i niezbyt skomplikowana.

Czytaj dalej
Przestał budować się obraz kontenera

Przestał budować się obraz kontenera

Przestał budować się obraz kontenera

Częścią obrazów kontenerów, które używam w swoich środowiskach sieciowych zarządzam samodzielnie. Ich cykliczną budową zajmuje się Jenkins. Także kontenery z obrazem samego Jenkinsa są budowane w ten sposób. 10 sierpnia coś się jednak stało. Mój skrypt przestał działać. W efekcie tego przestał budować się obraz kontenera. Wszystko ze względu na zmiany w pakietach z językiem Python w dystrybucji Alpine Linux. Jeżeli budujesz obrazy w oparciu o tą właśnie dystrybucję, to w tym artykule znajdziesz rozwiązanie.

Czytaj dalej
Namespace i podłączenie gniazda Dockera do kontenera

Namespace i podłączenie gniazda Dockera do kontenera

Namespace i podłączenie gniazda Dockera do kontenera

Bezpieczne urządzenie w domyślnej konfiguracji to takie wyłączone urządzenie. A najlepiej także odłączone od prądu. Bezpieczna aplikacja to wyłączona aplikacja, a najlepiej odinstalowana. Tak, trochę za dużo chyba ostatnio z „bezpiecznikami” rozmawiam… Niemniej tych zasad nie uda nam się spełniać w systemach IT, musimy zatem zadbać o odpowiednie mechanizmy bezpieczeństwa. Nie inaczej jest z Dockerem. W poprzednim swoim artykule zaznaczałem, że Docker w swojej domyślnej instalacji może się co najwyżej nadawać do domowego odizolowanego laboratorium. Nawet w systemach testowych czy developerskich powinniśmy wdrożyć mechanizm zwany namespace. Jego aktywacja powoduje jednak problemy z dostępem do gniazda (socket), służącego do lokalnej komunikacji z demonem Dockera.

Czytaj dalej
Instalacja Dockera za pomocą Ansible

Instalacja Dockera za pomocą Ansible

Instalacja Dockera za pomocą Ansible

Ostatni artykuł, w którym pokazałem jak skonfigurować API Dockera za pomocą playbooka Ansible zaowocował przysłanym mi pytaniem, czy równie prosto da się zautomatyzować instalację samego Dockera. Oczywiście że się da! Pierwsze moduły do Ansible miały na celu ułatwić zarządzanie pakietami i konfigurację systemów typu Linux. Pokarzę Ci teraz fragmenty z mojego playbooka (poszczególne zadania), którego używam do instalacji Dockera na RaspberryPi i dystrybucji Raspbian. Instalacja Dockera za pomocą Ansible składa się jedynie z kilku zadań.

Czytaj dalej
Uruchamiamy API Dockera za pomocą Ansible

Uruchamiamy API Dockera za pomocą Ansible

Uruchamiamy API Dockera za pomocą Ansible

W artykule „API Dockera” opisywałem dlaczego warto aktywować API na interfejsach sieciowych maszyny, oraz pokazałem kilka metod jak to zrobić. W różnego rodzaju testach, które przeprowadzam, rozpoczynam je od instalacji systemu operacyjnego. Manualne wprowadzanie za każdym razem zmian w konfiguracji byłoby krótko mówiąc marnowaniem czasu. Pokarzę Ci teraz w jaki sposób zautomatyzować tą pojedynczą czynność za pomocą Ansible. 

Czytaj dalej
Ansible 2.10 - nadchodzą zmiany

Ansible 2.10 – nadchodzą zmiany

Ansible 2.10 - nadchodzą zmiany

Każdy rozwinięty projekt osiąga taki moment , w którym niezbędne jest wprowadzenie w nim pewnych zmian. Mają one zapewnić jego dalszy rozwój i jeszcze większy sukces. Do takiego punktu niewątpliwie doszedł Ansible. Wraz z wydaniem Ansible 2.10, prawdopodobnie w okolicach połowy tego roku, ujrzymy ten sam produkt, ale w nieco odmienionej formule budowy i zarządzania kodem. Dla mnie, jako jednego z programistów, którego kod i całe moduły są częścią Ansible, jest to ciekawe doświadczenie.

Czytaj dalej
API Dockera

API Dockera

API Dockera

Jeżeli chodzi o wszelkiej maści automatyzację, to zawsze preferuję wykorzystywanie API wszędzie gdzie to tylko możliwe. Wydawanie poleceń na urządzeniu i parsowanie wyniku, który normalnie widzisz na ekranie to prosta droga do wywołania awarii w swojej sieci. Wystarczy, że w wyniku zmieni się jeden znak, a już twoje skrypty przestaną poprawnie działać. API działa inaczej, gdyż w operuje ściśle określonymi metodami i strukturami danych w komunikacji między klientem a aplikacją. Dlatego jedną z pierwszych czynności jakie powinniśmy zrobić to podłączenie API Dockera do interfejsów maszyny, na której uruchomiliśmy usługę.

Czytaj dalej
Instalacja Dockera

Instalacja Dockera

Instalacja Dockera

Spośród wielu narzędzi, których będziesz używał, jednym z podstawowych będzie Docker. To w kontenerach najlepiej odpalić inne narzędzia takie jak Jenkis, Puppet, Ansible Tower czy nawet własną instancję GitLaba. Rozwiązanie takie sprawdza się zarówno na systemach produkcyjnych jak i w laboratorium. Wiele aplikacji jest od podstaw napisanych, lub zostało zoptymalizowane, do działania w kontenerach. Instalacja Dockera jest bardzo prosta. Pamiętaj jednak, że Docker zaraz po zainstalowaniu nie jest odpowiednio zabezpieczony, aby bezpiecznie go wykorzystywać poza domowym zaciszem lub labem.

Czytaj dalej