Ansible Galaxy: wszystko, co musisz wiedzieć

Opublikowany: 2022-09-29

Ansible to popularne narzędzie do zarządzania konfiguracją typu open source. Z drugiej strony Ansible Galaxy jest repozytorium ról Ansible.

Jako początkujący administrator możesz mieć tylko kilka podręczników. W miarę doskonalenia umiejętności automatyzacji i lepszego poznania Ansible nauczysz się wszystkich najlepszych praktyk. W miarę powiększania się swoich podręczników zrozumiesz również, jak ważny jest Ansible Galaxy.

Co to jest galaktyka Ansible?

Ansible Galaxy to internetowe repozytorium online typu open source dla treści Ansible (głównie ról i kolekcji). To prawie tak, jakbyś stworzył coś nowego i chciał się tym podzielić z innymi.

Jeśli masz jakiekolwiek problemy z automatyzacją Ansible lub potrzebujesz gotowego rozwiązania od innych, aby przyspieszyć swoje projekty automatyzacji, Ansible Galaxy może Ci pomóc. Na przykład możesz mieć role, kolekcje, moduły lub wtyczki. Wielu członków społeczności przesłało już swoje kolekcje i role w Ansible.

Ansible-Galaxy-2

Aby wykonać zadania, takie jak instalowanie ról z Galaxy lub dowolnego git SCM, tworzenie lub usuwanie ról lub wykonywanie niektórych zadań w witrynie Galaxy, możemy użyć polecenia „ansible-galaxy”. To polecenie jest preinstalowane z Ansible, więc możesz go użyć natychmiast po zainstalowaniu Ansible.

Projekt Galaxy to projekt open-source, który pozwala nam hostować nasze wewnętrzne serwery Galaxy. Aby korzystać z wewnętrznego serwera Galaxy, musisz edytować domyślną konfigurację w pliku Ansible.cfg z adresem serwera wewnętrznego serwera Galaxy, ponieważ domyślnie używa on adresu serwera galaxy.ansible.com.

Przegląd Ansible

Ansible można opisać jako mnożnik, który automatyzuje i skaluje infrastruktury wszystkich rozmiarów. Może być używany do zarządzania konfiguracjami, koordynowania wdrożeń i innych funkcji. Ansible jest bardzo łatwy w konfiguracji. Ansible może być wykorzystany nawet przez początkującego administratora do automatyzacji infrastruktury w ciągu zaledwie kilku godzin.

Ansible automatyzuje się przy użyciu protokołu SSH. Mechanizm sterowania używa połączenia SSH do komunikacji z hostami docelowymi (zazwyczaj hostami systemu Linux). Administratorzy systemu Windows mogą nadal używać Ansible do automatyzacji swoich środowisk Windows za pomocą WinRM zamiast SSH. Maszyna sterująca musi nadal działać pod kontrolą systemu Linux.

Ansible może wykonywać typowe zadania administratora systemu, takie jak instalowanie poprawek, aktualizowanie, zarządzanie grupami i użytkownikami, udostępnianie i inne zadania administracyjne.

Ansible to obecnie najczęściej używane i popularne narzędzie do zarządzania konfiguracją, orkiestracji i wdrażania. Jego prostota jest jedną z jego głównych zalet. Jest prosty, potężny, ale bez agenta. Oznacza to, że nowy administrator lub administrator klasy podstawowej może zautomatyzować infrastrukturę w ciągu zaledwie kilku godzin. Ansible umożliwia szybkie skalowanie, wydajność i wielofunkcyjność.

Praca nad Ansible Galaxy

Następnie otwórzmy terminal i uruchommy kilka poleceń za pomocą Ansible Galaxy. Ale wcześniej musisz mieć zainstalowaną najnowszą wersję Ansible w swoim systemie.

Kiedy masz zainstalowany najnowszy Ansible w swoim systemie, po prostu wpisz ansible-galaxy w terminalu, a otrzymasz wszystkie opcje dostępne w Galaxy.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy 
galaktyka-ansibl

Po pierwsze, możesz zacząć od polecenia init i utworzyć rolę. Tutaj tworzę rolę „testowanie”. Użyj polecenia ls, aby sprawdzić, czy rola została pomyślnie utworzona. Komenda init tworzy również niezbędne pliki w katalogu roli testowej.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy init testing
ansible-galaxy-init

Galaktyka Ansible to duża i aktywna społeczność, w której stworzono już wiele ról, z których możesz bezpośrednio korzystać.

Poniżej znajduje się strona, która otworzy się podczas przeglądania „galaxy.ansible.com” lub możemy powiedzieć, że jest to strona główna witryny „Ansible Galaxy”. Możemy kliknąć dowolną popularną kategorię na stronie głównej lub kliknąć przycisk „Szukaj”, aby uzyskać więcej filtrów i zastosować szczegółowe wyszukiwanie.

ansible-galaktyka

Na przykład, jeśli szukasz roli serwera MySQL, po prostu ją wyszukaj i kliknij przycisk filtrowania. Możesz zobaczyć, że geerlingguy ma maksymalną liczbę pobrań; możemy spróbować zainstalować tę rolę. Kliknij na geerlingguy MySQL.

ansible-galaxy-mysql

Następnie otrzymasz polecenie instalacji, aby zainstalować tę rolę za pomocą ansible-galaxy .

ansible-galaxy-install-mysql

Uruchom polecenie wymienione w powyższej migawce, aby pobrać i zainstalować rolę serwera MySQL na swoim komputerze.

 ubuntu@ubuntu-VirtualBox:~$ ansible-galaxy zainstaluj geerlingguy.mysql 
ansible-galaxy-instalacja

Jeśli już wiesz, jaką rolę szukać według konkretnego autora, możesz użyć polecenia wyszukiwania, jak pokazano poniżej.

 ubuntu@ubuntu-VirtualBox:~$ wyszukiwanie ansible-galaxy elasticsearch --autor geerlingguy 
Ansible-galaxy-search

Wspólne polecenia dotyczące galaktyki Ansible

Polecenie ansible-galaxy zarządza rolami i kolekcjami za pomocą galaxy.ansible.com. Poniżej znajduje się kilka bardzo pomocnych poleceń ansible-galaxy , których od czasu do czasu używa każdy administrator:

  • ansible-galaxy list: To polecenie galaktyki wyświetla listę wszystkich zainstalowanych ról wraz z ich numerami wersji.
  • ansible-galaxy remove: To polecenie galaktyki usuwa zainstalowaną rolę w systemie.
  • ansible-galaxy info: To polecenie dotyczące galaktyki dostarczy szczegółowych informacji o Galaktyce Ansible.
  • ansible-galaxy init : To polecenie galaktyki może być użyte do stworzenia szablonu roli odpowiedniego do przesłania do Ansible Galaxy.
  • ansible-galaxy import : To polecenie galaktyki wymaga logowania, aby zaimportować rolę z oficjalnej strony galaktyki.

Powyższe polecenia (init, import, install, remove) mogą być używane z poleceniem kolekcji ansible-galaxy do zarządzania kolekcjami za pomocą Ansible galaxy.

Porozmawiajmy teraz o rolach i kolekcjach w Ansible Galaxy.

Twórz role za pomocą Ansible Galaxy

Ansible Galaxy to w zasadzie duże publiczne repozytorium ról Ansible. Role są dostarczane z READMEs , które wyjaśniają użycie i zmienne. Galaxy ma wiele ról, które nieustannie ewoluują i rozwijają się.

Galaxy może dodawać źródła ról, takie jak GitHub, za pomocą git. Ansible Galaxy pozwala nam tworzyć role Ansible za pomocą polecenia ansible-galaxy . Ansible-galaxy init może być użyty do zainicjowania nowej roli galaktyki lub możesz użyć polecenia ansible-galaxy install <name of role> , aby zainstalować rolę.

Zanim będzie można ich użyć w playbookach, należy pobrać rolę. Po umieszczeniu ich w domyślnym katalogu /etc/ansible/roles można znaleźć przykłady ról.

Struktura roli ansibla i jej znaczenie

Poniżej znajdują się pliki i katalogi tworzone podczas instalacji roli:

  • README.md to plik Readme opisujący rolę. Plik readme zawiera wszystkie szczegóły dotyczące parametrów wejściowych i przykładowy yml .
  • zadania — wszystkie zadania można zapisać w roli przy zadaniach. Punktem wejścia dla roli jest Main.yml. Tu zaczyna się egzekucja. Ten plik może zawierać inne pliki.
  • Programy obsługi — ta kategoria obejmuje programy obsługi, które mogą być używane w tej roli lub w dowolnej innej roli.
  • defaults — domyślne zmienne dla roli.
  • vars — zmienne, które są ważniejsze niż wartości domyślne dla roli.
  • Pliki — te pliki można wdrożyć za pomocą roli.
  • Szablony — ta sekcja zawiera szablony, których można używać za pośrednictwem roli.
  • meta – Metadane mogą służyć do definiowania ról w meta. Ten plik powinien również zawierać wszelkie zależności ról.
  • Testy – testy CI do wykonania.
  • biblioteka – Osadzanie modułów lub wtyczek w rolach. Nie utworzony przez polecenie init. Możesz także utworzyć niestandardowy moduł w Pythonie w tym folderze, a następnie użyć go w swoich zadaniach.

Twórz kolekcje za pomocą Ansible Galaxy

Ansible Galaxy to najlepsze narzędzie do zarządzania rolami, które jest używane od lat. Zobaczysz jednak nowe funkcje lub zmiany w Ansible Galaxy. Ansible w wersji 2.2.8 zawiera teraz funkcję zbierania.

Zawartość ansible można dystrybuować za pomocą kolekcji. Służą do pakowania i dystrybucji playbooków i ról, modułów, a także wtyczek.

Podstawą kolekcji jest następująca struktura:

 kolekcja/
├── dokumenty/
├──galaktyka.yml
├── wtyczki/
│ ├wiąt
moduły/
│ │ └── moduł1.py
│ ├wiąt
Inwentarz/
└── .../
README.md
├── role/
│ ├wiąt
rola1/
│ ├wiąt
rola2/
└── .../
├── podręczniki/
│ ├wiąt
akta/
│ ├wiąt
vars/
│ ├wiąt
szablony/
│ └── zadania/
└── testy/

Tworzenie szkieletu kolekcji

Aby zainstalować kolekcję na komputerze, możesz użyć polecenia instalacji kolekcji ansible-galaxy.

Warto zauważyć, że niektóre podkomendy mogą być również używane z galaktyką ansiblową.

  • init : Tworzy podstawową strukturę kolekcji na podstawie domyślnego szablonu Ansible'sle lub własnego
  • build : Tworzy artefakt kolekcji, który można przesłać do Galaxy lub do własnego repozytorium
  • publish : Galaxy publikuje artefakt wbudowanej kolekcji
  • install : Instaluje jedną lub więcej kolekcji

Wniosek

Galaktyka Ansible to świetny sposób na organizowanie i myślenie o stale rosnących książkach ról. Ansible Galaxy ma około 39 000 autorów społeczności, 30 000 ról i 1656 kolekcji, które można wykorzystać do szybkiego rozpoczęcia naszego projektu automatyzacji. Przewodnik dewelopera i przewodnik dla współtwórców wyjaśnia, jak przyczynić się do istniejącego kodu Ansible Galaxy, który jest projektem open source.

Możesz również zainteresować się zadaniami Sysadmin, które możesz zautomatyzować za pomocą Ansible.