Pierwszym krokiem w automatyzacji dowolnego operacyjnego cyklu życia aplikacji jest automatyzacja udostępniania infrastruktury. Provisioning to irytujący proces ustawiania konfiguracji, przydzielania pamięci, miejsca na dysku itp. Przed ich faktycznym użyciem. Zobaczmy, jak Ansible Provisioning upraszcza to i przyspiesza.
Większość wdrożeń na dużą skalę wymaga identycznej konfiguracji środowiska w wielu systemach.Jak więc to robisz? Wykonywanie tego samego zestawu poleceń na stu systemach ręcznie? Nie ... To zbyt stara szkoła. To jest coś, w czym maszyny są dobre, a nie ludzie. A co, jeśli powiem ci, że ten długi i nudny proces można wykonać, wykonując po prostu jeden poradnik Ansible?O tym będziemy rozmawiać na tym blogu - Ansible Provisioning.
Omawiane tematy to:
- Co to jest Ansible
- Co może Ansible Automate?
- Potrzeba obsługi administracyjnej Ansible
- Demo: jak zapewnić środowisko do wdrożenia serwisu WWW
Jeśli chcesz opanować DevOps, ' Oczywiście powinno być Twoją opcją.
Co to jest Ansible?
DevOps to kultura, w której automatyzacja ma naprawdę wysoki priorytet. Jeśli istnieją narzędzia do automatyzacji wdrażania i procesu testowania, warto mieć narzędzia do zarządzania konfiguracją i udostępniania. Istnieje milion sposobów, aby stać się mądrzejszym, a korzystanie z Ansible jest jednym z nich. Jest to jedno z najczęściej używanych narzędzi.
Ansible korzysta z podręczników opartych na YAML, które są zrozumiałe nawet dla początkujących. Wykorzystuje architekturę bezagentową do komunikacji ze swoimi klientami, która nie wymaga zainstalowania na komputerze klienta żadnego narzędzia innej firmy, a zamiast tego wykorzystuje połączenia oparte na SSH. Ansible jest narzędziem do automatyzacji. Zobaczmy, co może zautomatyzować.
Co może Ansible Automate?
Nazwij etap cyklu rozwoju, a Ansible Ci w tym pomoże, czy to zarządzanie konfiguracją, dostarczanie, orkiestracja, ciągłe dostarczanie, bezpieczeństwo, czy nawet wdrażanie aplikacji. Ansible łączy przepływ pracy w cyklu rozwoju w jedną platformę automatyzacji bez agentów.
- Udostępnianie: Konieczne jest stworzenie odpowiedniego środowiska do działania aplikacji / oprogramowania. Ansible zapewnia sposób na zautomatyzowanie środowiska stworzonego dla istnienia aplikacji.
- Zarządzanie konfiguracją: Wykonywanie różnorodnych zadań konfiguracyjnych, takich jak uruchamianie / zatrzymywanie usług, zmiana konfiguracji systemu, urządzenia lub aplikacji itp.
- Wdrażanie aplikacji: Zautomatyzuj definiowanie wdrożenia za pomocą Ansible i zarządzaj wdrożeniem za pomocą Wieża Ansible . Dzięki temu cały cykl aplikacji, od produkcji do wdrożenia, jest wydajny i łatwy w zarządzaniu.
- Ciągła dostawa: Tworzenie i zarządzanie potokiem ciągłej integracji / ciągłego dostarczania może być uciążliwe. W tym miejscu wkracza Ansible i ułatwia życie programistom.
- Bezpieczeństwo i zgodność: Praca z projektami zawsze wyznacza granice i jest zintegrowana z polityką bezpieczeństwa firmy. Automatyczne zintegrowanie zasad bezpieczeństwa z wdrożeniem może ułatwić przestrzeganie zasad.
- Orkiestracja: Cały projekt to zbiór wielu różnych instancji o różnej konfiguracji. Ansible łączy te różne wystąpienia i zarządza nimi jako całością.
Potrzeba obsługi administracyjnej Ansible
Jak wspomniano wcześniej, pierwszy krok doautomatyzacja cyklu życia aplikacjiprzygotowuje środowisko, czyli zapewnia obsługę administracyjną. Duże wdrożenia wymagają wielu hostów o dokładnie takich samych konfiguracjach. Jakie są szanse na to, że po udostępnieniu jednego hosta następnych 10 hostów będzie miało dokładnie taką samą konfigurację, jeśli zostanie wykonana ręcznie? Ile czasu spędzisz na wykonywaniu tego samego powtarzalnego zadania? Tutaj właśnie pojawia się Ansible. Możesz udostępnić setki hostów, wykonując tylko jeden podręcznik. Magia? Ha ha! Nie, tylko ewolucja w automatyzacji.
Demo: utwórz stos LAMP i wdróż stronę internetową
Załóżmy, że próbujesz wdrożyć witrynę w 30 systemach. Każde wdrożenie witryny będzie wymagało podstawowego systemu operacyjnego, serwera internetowego, bazy danych i języka PHP. Używamy Playbooka ansible do zainstalowania tych wymagań wstępnych na wszystkich 30 systemach jednocześnie.
W tym pokazie obsługi administracyjnej Ansible pokażę, jak udostępnić środowisko hostingu witryny za pomocą Ansible. Instalujemy stos LAMP (Linux, Apache, MySQL i PHP), a następnie wdrażamy witrynę internetową.
W tej demonstracji użyłem Linux VirtualBox z wersją Ubuntu 17.04. Używałem dwóch maszyn wirtualnych, jednej jako mojego serwera, na którym zainstalowano Ansible, a drugiej jako zdalnego hosta. Zacznijmy od ustawienia Ansible na serwerze.
Utworzyłem prostą statyczną stronę internetową zapisaną w folderze indeks który zawiera dwa pliki, index.html i style.css.
index.html:
Strona internetowa wykorzystująca HTML i CSSDom O Rasy Przyjęcie Kontakt Przyjmuje się teraz
style.css
* { margines: 0 wyściółka: 0 } nagłówek { background-image: linear-gradient (rgba (0,0,0,0,5), rgba (0,0,0,0,5)), url ('puppie.jpg') wysokość: 100 vh background-size: okładka background-position: center } .nav-menu { float: right styl listy: brak margin-top: 30px } .nav-menu li { wyświetlacz: inline-block } .nav-menu li a { kolor: turkusowy dekoracja tekstu: brak wypełnienie: 5px 20px rodzina czcionek: „Verdana”, „sans-serif” rozmiar czcionki: 20px } .homebtn a { obramowanie: 1px jednolicie szare kolor tła: biały } .nav-menu li a: hover { obramowanie: 1px jednolicie szare kolor tła: biały } .tagline { pozycja: bezwzględna szerokość: 1200px margin-left: 0 margin-top: 0 } h1 { kolor biały rozmiar czcionki: 50px rodzina czcionek: „Verdana”, „sans-serif” text-align: center margin-top: 275px } .adopt { margin-top: 30px margin-left: 540px } .bttn { obramowanie: 1px jednolicie białe dopełnienie: 10px 30px kolor żółty rodzina czcionek: „Verdana”, „sans-serif” rozmiar czcionki: 22px dekoracja tekstu: brak } .adopt a: hover { kolor tła: burlywood }
Krok 1: Wykonaj następujące polecenia, aby zaktualizować repozytoria, dodać wymagane repozytoria i skonfigurować PPA na swoim komputerze do instalacji Ansible:
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible
Naciśnij Enter, aby zaakceptować dodanie PPA, a następnie zainstaluj Ansible po zaktualizowaniu repozytoriów.
$ sudo apt-get update $ sudo apt-get install ansible
Krok 2: Przejdź do pliku / etc / hosts na serwerze i dodaj nazwę hosta oraz adres IP hosta.
Rys. 1 - Dodaj zdalne hosty do pliku / etc / hosts - Ansible Provisioning
Krok 3: Ponieważ Ansible działa na architekturze bezagentowej, wykorzystującej SSH do komunikacji z hostami, skonfiguruj klucze ssh. Zasadniczo mamy jeden serwer i jednego hosta. Kontrolujemy hosta za pomocą naszego serwera i dlatego tworzymy publiczny klucz ssh na serwerze i kopiujemy go na maszynę hosta. Wykonaj następujące polecenie na serwerze:
$ ssh-keygen
Zostaniesz poproszony o podanie nazwy plikuGdzie jachcesz zapisać swój klucz, a także poprosić o utworzenie hasła dostępu do wygenerowanego klucza, co jest opcjonalne. Domyślnie klucz publiczny jest zapisywany w pliku .ssh / id_rsa.pub, a klucz prywatny w pliku .ssh / id_rsa.
Rys. 2 - Tworzenie klucza SSH - Ansible Provisioning
Teraz ten wygenerowany klucz musi być obecny w twoim hoście. Kopiowanie klucza do hosta można wykonać na dwa sposoby: ręcznie skopiuj do hosta lub użyj polecenia ssh-copy-id. W tym przypadku zamierzam go skopiować za pomocą polecenia ssh-copy-id root @ IP_of_host.
$ ssh-copy-id root@192.168.56.104
Uwaga: przed wykonaniem tego polecenia upewnij się, że możesz połączyć się ssh z hostem.
Krok 4: Skonfiguruj hosty Ansible. Przejdź do pliku / etc / ansible / hosts i dodaj nazwę hosta. Będzie się to różnić w zależności od liczby posiadanych hostów i serwerów. Możesz też mieć więcej niżjeden serwertutaj.
algorytmy i struktury danych w java
Rys. 3 - Dodaj hosty zdalne w pliku inwentaryzacji - Provisioning Provisioning
Krok 5: Sprawdź, czy Twoje hosty są gotowe. Wykonaj to polecenie, powinieneś otrzymać podobny wynik.
$ ansible -m pinguj wszystko
Rys. 4 - Sprawdź stan zdalnego hosta - Ansible Provisioning
Krok 6: Teraz nasz Ansible jest gotowy, przygotujmy środowisko do wdrożenia witryny internetowej. Zamierzamy użyć jednego poradnika Ansible do zainstalowania Apache, MySql i PHP. Przyjrzyjmy się temu.
Uwaga: jeśli jesteś początkującym, spójrz na to blog, który wyjaśnia, jak napisać poradnik.
--- # Konfiguracja stosu LAMP - hosty: zadania host1: - nazwa: Dodaj repozytorium ppa: tak apt_repository: repo = ppa: ondrej / php - nazwa: Zainstaluj stos lamp get: tak apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql stan: obecna pamięć podręczna aktualizacji: tak - nazwa: uruchom serwer apache stała się: tak usługa: nazwa: apache2 stan: uruchomiona włączona: tak - nazwa: uruchom usługę mysql stała się: tak usługi: nazwa: stan mysql: uruchomione włączone: tak - nazwa: utwórz katalog docelowy plik: ścieżka = / var / www / html stan = tryb katalogu = 0755 - nazwa: wdroż index.html stała się: tak kopia: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html
Jak widać, mamy 6 zadań, każde zadanie spełnia określoną funkcję.
- Pierwsze zadanie dodaje repozytorium wymagane do instalacji MySQL i PHP.
- Drugie zadanie instaluje apache2, serwer MySQL, PHP i PHP-MySQL.
- Trzecie i czwarte zadanie uruchamia usługę Apache i MySQL.
- Piąte zadanie tworzy katalog docelowy na hoście i
- Wreszcie, szóste zadanie wykonuje plik index.html, pobiera plik z serwera i kopiuje go do hosta.
Uruchom ten podręcznik za pomocą następującego polecenia:
$ ansible-playbook lamp.yml -K
Linie stać się: tak w poradniku mówi, że musi być wykonywany jako root i dlatego po wykonaniu polecenia wyświetli się monit o hasło sudo.
Rys. 5 - Execute Ansible Playbook - Ansible Provisioning
Teraz możesz przejść do komputera hosta i sprawdzić, czy witryna jest hostowana.
Rys. 6 - Hostowanie witryny internetowej na serwerze lokalnym - Ansible Provisioning
To jest strona internetowa, która zostałaby wdrożona na wszystkich hostach, które współpracują z serwerem (w naszym przypadku mieliśmy tylko jednego hosta), ale to samo byłoby możliwe nawet dla 100 zdalnych hostów.
To prowadzi nas do końca bloga Ansible Provisioning. Jeśli uznasz ten artykuł za pomocny, zapoznaj się z ' oferowane przez Edureka. Obejmuje wszystkie narzędzia, które uczyniły branżę IT inteligentniejszą.
Masz do nas pytanie? Proszę opublikuj to na a my skontaktujemy się z Tobą.