Ansible apt_repository Moduł może być używany do dodawania i usuwania repozytoriów pakietów i PPA na hostach Ubuntu z łatwością. Możesz także zaktualizować pamięć podręczną repozytorium pakietów Apt za pomocą ansible apt_repository moduł.
W tym artykule pokaże, jak zarządzać repozytoriami pakietu Ubuntu i PPA za pomocą Ansible apt_repository moduł. Więc zacznijmy.
Wymagania wstępne
Jeśli chcesz wypróbować przykłady zawarte w tym artykule:
1) Musisz mieć zainstalowany na komputerze Ansible.
2) Musisz mieć skonfigurowany host Ubuntu do automatyzacji Ansible.
Istnieje wiele artykułów na temat Linuxhint poświęconych instalacji ansible i konfiguracji hostów do automatyzacji ansible. Możesz sprawdzić te artykuły, jeśli potrzebujesz dodatkowych informacji.
Konfigurowanie katalogu projektu
Zanim zaczniemy, dobrym pomysłem będzie stworzenie struktury katalogu projektu, aby zachować trochę bardziej zorganizowane.
Aby utworzyć katalog projektu apt-pA-repo/ i wszystkie wymagane podkatalog (w bieżącym katalogu roboczym) uruchom następujące polecenie:
$ mkdir -pv apt-pA-repo/podręczniki
Po utworzeniu katalogu projektu przejdź do katalogu projektu, w następujący sposób:
$ cd apt-pA-repo
Stwórz zastępy niebieskie Plik zapasowy, w następujący sposób:
$ nano gospodarze
Dodaj nazwę IP lub DNS hosta (VM7.Nodekite.com I VM8.Nodekite.com, w moim przypadku) twoich hostów Ubuntu w pliku ekwipunku.
Po zakończeniu zapisz plik, naciskając + X, śledzony przez Y I .
Utwórz plik konfiguracyjny Ansible w katalogu projektu, w następujący sposób:
$ nano ansible.CFG
Wpisz następujące wiersze w Ansible.CFG plik:
[domyślne]Po zakończeniu zapisz plik, naciskając + X, śledzony przez Y I .
W tym momencie katalog projektu powinien wyglądać jak następujące:
$ Tree
Jak widać, hosty Ansible są dostępne. Możemy więc przejść do następnej sekcji tego artykułu.
$ ansible all -u ansible -m ping
Dodawanie repozytoriów pakietów
W tej sekcji pokażę, jak dodać repozytorium pakietów w Ubuntu za pomocą ansible.
Najpierw stwórz nowy podręcznik o nazwie add_repo.Yaml w podręczniki/ katalog, jak następuje:
$ Nano Playbooks/add_repo.YamlWpisz następujące wiersze w add_repo.Yaml plik:
- Gospodarze: WszyscyPo zakończeniu zapisz plik, naciskając + X, śledzony przez Y I .
Tutaj Repo opcja apt_repository Moduł służy do określenia linii repozytorium pakietów Apt (w moim przypadku, deb http: // archiwum.Ubuntu.Com/Ubuntu Focal Universe) z repozytorium pakietu, które chcesz dodać (w moim przypadku Ubuntu 20.04 LTS Urzędnik wszechświat magazyn).
Aby dowiedzieć się więcej o formacie linii repozytorium pakietów Apt, przeczytaj Pliki konfiguracji repozytorium pakietów Ubuntu Sekcja artykułu Jak korzystać z APT Pakiet Manager w Ubuntu 20.04 LTS.
Gdy dodam tutaj nowe repozytorium pakietów, państwo Jest obecny.
aktualizacja_cache Opcja może być albo PRAWDA/Tak Lub FAŁSZ/NIE.
Jeśli aktualizacja_cache jest ustawione na PRAWDA, Ansible zaktualizuje pamięć podręczną repozytorium pakietów apt po dodaniu repozytorium pakietów.
Jeśli aktualizacja_cache jest ustawione na FAŁSZ, Ansible nie zaktualizuje pamięci podręcznej repozytorium pakietów apt.
Tutaj chcę, aby repozytorium pakietów Apt zostało zaktualizowane po dodaniu nowego repozytorium pakietów. Więc ustawiłem aktualizacja_cache Do PRAWDA.
Teraz uruchom add_repo.Yaml Playbook, w następujący sposób:
$ Ansible-Playbook Playbooks/add_repo.YamlJak widać, podręcznik działał pomyślnie.
Aby potwierdzić, że repozytorium pakietów (w moim przypadku Ubuntu 20.04 LTS wszechświat Repozytorium) jest dodawane, uruchom następujące polecenie:
$ grep -color -r 'http: // archiwum.Ubuntu.com '/etc/apt/źródła.lista
/etc/apt/źródła.lista.D/*.lista
Jak widać, w nowym pliku została utworzona w /etc/apt/źródła.lista.D/ katalog (1) i Ubuntu 20.04 LTS wszechświat Dodano repozytorium pakietów (2).
Domyślnie Ansible automatycznie wygeneruje .lista plik w /etc/apt/źródła.lista.D/ katalog, w zależności od linii repozytorium apt.
Jeśli chcesz wybrać określoną nazwę pliku (i.mi. Ubuntu-Universe.lista) W przypadku repozytorium możesz określić nazwę pliku za pomocą Nazwa pliku opcja apt_repository moduł w twoim add_repo.Yaml podręcznik, jak pokazano na zrzucie ekranu poniżej.
Teraz uruchom add_repo.Yaml Znowu podręcznik.
$ Ansible-Playbook Playbooks/add_repo.YamlJak widać, nazwa pliku to ta sama nazwa, którą określałem.
$ grep -color -r 'http: // archiwum.Ubuntu.com '/etc/apt/źródła.lista
/etc/apt/źródła.lista.D/*.lista
Usuwanie repozytoriów pakietów
W tej sekcji pokażę, jak usunąć istniejące repozytorium pakietów z hostów Ubuntu za pomocą Ansible.
Podręcznik do usunięcia repozytorium pakietów jest prawie taki sam jak dodanie repozytorium pakietów. Więc możesz po prostu skopiować add_repo.Yaml Plik podręcznika i trochę go zmodyfikuj. Jest to bardzo proste.
Najpierw skopiuj add_repo.Yaml plik do usuń_repo.Yaml, następująco:
$ CP -V Playbooki/add_repo.YAML Playbooks/Revel_Repo.YamlEdytuj usuń_repo.Yaml Playbook, w następujący sposób:
$ Nano Playbooks/remove_repo.YamlZmiana Stan: obecny Do Stan: nieobecny, jak zaznaczono na zrzucie ekranu poniżej. To będzie jedyna zmiana, którą musisz wprowadzić.
Po zakończeniu zapisz plik, naciskając + X, śledzony przez Y I .
Uruchom usuń_repo.Yaml Playbook, w następujący sposób:
$ Ansible-Playbook Playbooks/remove_repo.YamlNastępnie uruchom następujące polecenie, aby sprawdzić, czy repozytorium pakietów, które chcesz usunąć, zostało faktycznie usunięte.
$ grep -color -r 'http: // archiwum.Ubuntu.com '/etc/apt/źródła.listaJak widać, Ubuntu 20.04 LTS Urzędnik wszechświat Repozytorium pakietów, które dodałem wcześniej, zostało usunięte.
NOTATKA: Zignoruj komunikat o błędzie. Ta wiadomość oznacza po prostu, że /etc/apt/źródła.lista.D/ Katalog jest pusty. Jeśli chcesz usunąć komunikat o błędzie, po prostu dodaj 2>/dev/null na końcu polecenia, jak następuje. Błąd powinien zniknąć po całkowitym tym poleceniu.
$ grep -color -r 'http: // archiwum.Ubuntu.com '/etc/apt/źródła.listaDodawanie PPA
W tej sekcji pokażę ci, jak dodać PPA do swoich hostów Ubuntu za pomocą Ansible.
Dodam Osomon/NodeJS-10.19-foc Węzeł.JS 10.19 PPA dla Ubuntu 20.04 LTS w moim przykładzie.
Najpierw stwórz nowy podręcznik add_ppa.Yaml, następująco:
$ Nano Playbooks/add_ppa.YamlDodaj następujące wiersze w swoim add_ppa.Yaml Playbook:
- Gospodarze: WszyscyPo zakończeniu zapisz add_ppa.Yaml Playbook przez nacisk + X, śledzony przez Y I .
Tutaj Repo opcja apt_repository Moduł służy do dodania PPA Osomon/NodeJS-10.19-foc (1).
Pamiętaj, aby dodać PPA: Przed nazwą PPA, ja.mi. PPA: Osomon/Nodejs-10.19-foc.
Większość PPA korzysta z samowystarczalnych certyfikatów, więc Ansible nie może ich weryfikować dla ciebie i mogą one błędnie uruchomić poradnik.
Możesz ustawić VALIDATE_CERTS Do FAŁSZ Aby pominąć walidację certyfikatu dla PPA, którą dodajesz (2). To właśnie zrobiłem w przykładzie w tym artykule.
NOTATKA: Możesz także ustawić VALIDATE_CERTS Do FAŁSZ Aby pominąć walidację certyfikacji podczas dodawania repozytoriów pakietów innych firm.
Uruchom add_ppa.Yaml Playbook, w następujący sposób:
$ Ansible-Playbook Playbooks/add_ppa.YamlJak widać, nowy .lista plik PPA Osomon/NodeJS-10.19-foc został stworzony w /etc/apt/źródła.lista.D/ katalog (1).
Patrząc na zawartość PPA_OSOMON_NODEJS_10_19_FOCAL_FOCAL.lista Plik mogę potwierdzić, że PPA został dodany (2).
$ drzewo/etc/apt/źródła.lista.D/Usuwanie PPA
Możesz usunąć PPA w taki sam sposób, jak usuwaliśmy repozytoria opakowań we wcześniejszej sekcji tego artykułu.
Po prostu skopiuj app_ppa.Yaml podręcznik do usuń_ppa.Yaml, następująco:
$ CP -V Playbooki/add_repo.YAML Playbooks/Revel_Repo.YamlTeraz otwórz usuń_ppa.Yaml Playbook, w następujący sposób:
$ Nano Playbooks/remove_ppa.YamlNastępnie zmień linię Stan: obecny Do Stan: nieobecny, jak zaznaczono na zrzucie ekranu poniżej.
Po zakończeniu zapisz usuń_ppa.Yaml Playbook przez nacisk + X, śledzony przez Y I .
Uruchom usuń_ppa.Yaml Playbook, w następujący sposób:
$ Ansible-Playbook Playbooks/add_ppa.YamlJak widać, PPA_OSOMON_NODEJS_10_19_FOCAL_FOCAL.lista plik dla Osomon/NodeJS-10.19-foc PPA nie jest już dostępna w /etc/apt/źródła.lista.D/ informator. Więc PPA Osomon/NodeJS-10.19-foc zostało usunięte.
$ drzewo/etc/apt/źródła.lista.D/
Zmiana nazwy PPA
Czasami PPA, którą próbujesz dodać do swojego hosta Ubuntu, nie obsługuje wersji Ubuntu, którą uruchomi się. W takim przypadku będziesz musiał ręcznie określić kod namienia wersji Ubuntu podczas dodawania PPA.
Załóżmy, że bierzesz Ubuntu 20.04 Z Nazwa pokrowca ogniskowy I próbujesz dodać PPA XYZ, Ale PPA XYZ obsługuje tylko Ubuntu 16.04 LTS Codename ksenial. Jeśli spróbujesz dodać PPA XYZ, Otrzymasz błąd, ponieważ PPA nie ma żadnego pakietu dla Ubuntu 20.04 Codename ogniskowy. Ale jeśli określisz Ubuntu 16.04 LTS Codename ksenialny Dodając PPA, nie otrzymasz żadnego błędu. W ten sposób możesz zainstalować żądany pakiet z PPA, nawet jeśli nie obsługuje on jawnej wersji Ubuntu, którą aktualnie uruchomi się.
Zobaczmy przykład.
Najpierw skopiuj add_ppa.Yaml Plik podręcznika do zmiana_ppa_codename.Yaml, następująco:
$ CP -V Playbooki/add_ppa.YAML Playbooks/Change_PPA_Codename.YamlNastępnie otwórz zmiana_ppa_codename.Yaml Plik w następujący sposób:
$ Nano Playbooks/Change_PPA_Codename.YamlTutaj wszystko, co musisz zrobić, to dodać kryptonim opcja z żądaną kodą Ubuntu (i.mi. Nazwa kodowa: Xenial), jak zaznaczono na zrzucie ekranu poniżej.
Po zakończeniu zapisz zmiana_ppa_codename.Yaml plik naciskając + X, śledzony przez Y I .
Uruchom zmiana_ppa_codename.Yaml Playbook, w następujący sposób:
$ Ansible-Playbook Playbooks/Change_PPA_Codename.YamlNOTATKA: Dostaję błąd, ponieważ PPA, którą tu dodałem.04 LTS. Możesz po prostu zignorować tę wiadomość.
Jak widać, PPA został dodany i nazwa Ubuntu ksenialny znajduje się w linii repozytorium pakietów Apt.
Wniosek
W tym artykule pokazano, jak zarządzać (dodać/usunąć) repozytoria pakietów Ubuntu i PPA za pomocą Ansible.
Ansible apt_repository Moduł służy do zarządzania repozytoriami pakietów Ubuntu i PPA. W tym artykule wyjaśniono wszystkie ważne opcje apt_repository Moduł Ansible.
Aby uzyskać więcej informacji, sprawdź oficjalną stronę dokumentacji APT_Repository Ansible.