Udostępnianie, wzmacnianie i inicjalizacja hostów
Doprowadzanie nowych serwerów do stanu bazowego.
Udostępnianie, wzmacnianie i inicjalizacja hostów to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Od pustego serwera do bazowej konfiguracji
Nowe hosty są puste. Rola common doprowadza każdy serwer do jednego bezpiecznego i spójnego stanu bazowego, zanim trafi na niego kod aplikacji. 🛠️
Aktualizowanie pamięci podręcznej pakietów
Najpierw należy odświeżyć informacje o pakietach, aby instalacje korzystały z aktualnych wersji. Moduł apt może zaktualizować pamięć podręczną w jednym idempotentnym zadaniu.
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600Instalowanie pakietów bazowych
Należy użyć pętli, aby zainstalować narzędzia potrzebne na każdym hoście, takie jak curl, vim i ufw, w jednym czytelnym zadaniu.
- name: Base packages
ansible.builtin.apt:
name:
- curl
- ufw
- fail2ban
state: presentTworzenie użytkownika wdrożeniowego
Praca z aplikacją nigdy nie powinna być wykonywana jako root. Moduł user tworzy dedykowane konto wdrożeniowe, które od tej pory jest właścicielem aplikacji.
- name: Create deploy user
ansible.builtin.user:
name: deploy
groups: sudo
shell: /bin/bashPrzesyłanie klucza SSH
Należy użyć authorized_key, aby przyznać użytkownikowi wdrożeniowemu dostęp za pomocą klucza, dzięki czemu kolejne uruchomienia będą łączyć się bez haseł.
- name: Add deploy key
ansible.posix.authorized_key:
user: deploy
key: "{{ deploy_pubkey }}"Zabezpieczanie SSH
Należy wzmocnić konfigurację demona: wyłączyć logowanie roota i uwierzytelnianie hasłem. Moduł lineinfile bezpiecznie i idempotentnie modyfikuje sshd_config.
- ansible.builtin.lineinfile:
path: /etc/ssh/sshd_config
regexp: "^PermitRootLogin"
line: "PermitRootLogin no"
notify: Restart sshdOtwieranie tylko potrzebnych portów
Należy skonfigurować zaporę za pomocą ufw: zezwolić na SSH i porty aplikacji, a pozostały ruch odrzucić. Domyślnie minimalizujemy zakres dostępnych usług.
- community.general.ufw:
rule: allow
port: "22"
proto: tcpUstawianie strefy czasowej i NTP
Spójne zegary mają znaczenie dla logów i certyfikatów. Należy ustawić strefę czasową i włączyć synchronizację czasu, aby każdy host miał ten sam czas.
- community.general.timezone:
name: UTCPrzenoszenie operacji do handlera
sshd należy restartować tylko po zmianie jego konfiguracji, używając notify wraz z handlerem, a nie przy każdym uruchomieniu.
handlers:
- name: Restart sshd
ansible.builtin.service:
name: sshd
state: restartedUruchamianie idempotentne
Należy uruchomić rolę common dwukrotnie; drugie przejście powinno zgłosić głównie stan ok, a nie changed. Dowodzi to, że konfiguracja bazowa rzeczywiście osiągnęła stan docelowy.
Konfiguracja bazowa przed aplikacją
Najpierw należy zadbać o bezpieczeństwo, aby aplikacja była wdrażana na znanym i zabezpieczonym hoście. Bootstrapowanie stanowi fundament, na którym opiera się cała reszta. 🔒
Szybkie sprawdzenie
Jedna decyzja pozwala zachować przejrzystość modyfikacji konfiguracji SSH.
Podsumowanie
Przygotowano konfigurację bazową: pakiety, użytkownika wdrożeniowego, klucze SSH, zabezpieczony sshd, zaporę i synchronizację czasu — wszystko w sposób idempotentny. ✅
Często zadawane pytania
Czy lekcja „Udostępnianie, wzmacnianie i inicjalizacja hostów” jest bezpłatna?
Tak — pełny tekst „Udostępnianie, wzmacnianie i inicjalizacja hostów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Udostępnianie, wzmacnianie i inicjalizacja hostów”?
Doprowadzanie nowych serwerów do stanu bazowego. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Udostępnianie, wzmacnianie i inicjalizacja hostów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Architektura projektu: role i inventory
- Udostępnianie, wzmacnianie i inicjalizacja hostów
- Wdrożenie kroczące za load balancerem
- Testy smoke, wycofywanie i powiadomienia