Jak pobrać pliki za pomocą modułu ansible get_url

Jak pobrać pliki za pomocą modułu ansible get_url

Jako użytkownik Linux, prawdopodobnie znasz narzędzia, które pozwalają pobierać pliki ze zdalnych serwerów za pomocą protokołów HTTP, HTTPS i FTP, takich jak WGET i Curl. Podczas wykonywania zadań automatyzacji od czasu do czasu będziesz musiał pobrać pliki i pakiety na zdalne hosty. Podczas gdy możesz użyć WGET i Curl na zdalnych hostach, aby wykonać tę funkcję, możesz również ominąć wymaganą instalację, aby użyć tych narzędzi za pomocą modułu ansible get_url.

Ten samouczek pokazuje, jak korzystać z polecenia ansible get_url do pobierania plików ze zdalnych serwerów.

Zanim zaczniemy, polecenie ansible get_url wymaga następujących warunków wstępnych:

  1. Zdalny serwer, z którego mają zostać pobrane pliki, powinien mieć bezpośredni dostęp do serwera hosta.
  2. Serwer hosta powinien obsługiwać zarówno protokoły HTTP, jak i HTTPS.

O module get_url

Zanim dowiesz się o tym, jak wdrożyć moduł get_url, najpierw istnieje kilka rzeczy, które warto zrozumieć w tym module. Moduł GET_URL obsługuje następujące funkcje:

  • Pobieranie i sprawdzanie poprawności z serwera
  • Serwery HTTP, HTTPS i FTP
  • Serwery proxy, które można określić za pomocą dyrektywy _proxy
  • Ustawienie limitu czasu na żądania GET
  • Włosowanie w sieci
  • Podstawowa autoryzacja sieci

Następnie pokażemy, jak używać modułu get_url do pobierania plików z różnymi protokołami i konfiguracjami.

Korzystanie z modułu GET_URL do uzyskania plików

Poniżej przedstawiono kilka przykładów, które można zaimplementować za pomocą modułu GET_URL podczas pobierania plików z zdalnego serwera.

Pobierz pliki z serwera HTTP/HTTPS z bezpośrednim adresem URL

Rozważ następujący podręcznik, który tworzy katalog w ~/.lokalny i używa modułu get_url do pobrania pakietu debian mysql.

NOTATKA: Możesz znaleźć pakiety MySQL Server w zasobach podanym poniżej:

https: // linkfy.do/mysql-pak

- Gospodarze: Wszyscy
- Nazwa: Pobierz Debian MySQL Server za pomocą HTTP/HTTPS
Zadania:
- Nazwa: Make Directory MySQL-Server In/Home/User/.lokalny
plik:
Ścieżka: ~/.Lokalny/mysql-serwer
Stan: Directory
Tryb: 0777
- Nazwa: Pobierz pakiety MySQL-Server
get_url:
URL: „https: // pobieranie.Mysql.com/archiwa/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.smoła"
Dest: ~/.Lokalny/mysql-serwer
Tryb: 0777
Suma kontrolna: MD5: 5568E206A187A3B658392520540F556E

Powyższy podręcznik zaczyna się od utworzenia katalogu w $ home/.lokalny/mysql-server, w którym pobrany pakiet powinien być przechowywany. Jeśli tworzysz katalog w uprzywilejowanym katalogu, pamiętaj o użyciu dyrektywy „zostań”.

Następnie podręcznik wywołuje moduł GET_URL i określa adres URL, z którego można pobrać pakiet, a następnie katalog docelowy do przechowywania pliku. Ostatnia sekcja podręcznika określa sumę kontrolną MD5 w celu sprawdzenia ważności pliku.

NOTATKA: W powyższym podręczniku skodowaliśmy sumę kontrolną, ale możesz określić adres URL, na którym hostowana jest suma kontrolna.

Po uruchomieniu podręcznika uzyskasz wyjście wskazujące sukces lub porażkę zadań.

$ ansible-playbook do pobrania_mysql_server.YML Play [Pobierz debian mysql Server za pomocą http/https] ************************************************************************************** ***************************************************** ***************************************************** ******************
Zadanie [gromadzenie faktów] ********************************************* ***************************************************** ***************************************************** *****************************************
OK: [35.222.210.12]
Zadanie [Make Directory MySQL-Server In/Home/User/.lokalny] ************************************************* ***************************************************** ***************************************************** ***********
35.222.210.12: OK = 3 Zmieniony = 1 nieosiągalny = 0 nieudany = 0 pomijany = 0 uratowany = 0 ignorowany = 0

Po zakończeniu procesu możesz zalogować się do hosta i sprawdzić, czy plik istnieje.

Pobierz pliki z SHA256 Suma

Możesz także pobrać pliki i zweryfikować je za pomocą suma kontrolnego SHA256, jak pokazano w przykładowym podręczniku poniżej:

- Gospodarze: Wszyscy
- Nazwa: Pobierz Debian MySQL Server za pomocą HTTP/HTTPS
Zadania:
- Nazwa: Make Directory MySQL-Server In/Home/User/.lokalny
plik:
Ścieżka: ~/.Lokalny/mysql-serwer
Stan: Directory
Tryb: 0777
- Nazwa: Pobierz pakiety MySQL-Server
get_url:
URL: https: // pobieranie.Mysql.com/archiwa/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.smoła
Dest: ~/.Lokalny/mysql-serwer
Tryb: 0777
Suma kontrolna: SHA256: B5BB9D8014A0F9B1D61E21E796D78EEFDF1352F23CD32812F4850B878AE4944C

Aby użyć adresu URL zamiast na twardą sumę kontrolną, rozważ następujący przykład:

- Gospodarze: Wszyscy
- Nazwa: Pobierz Debian MySQL Server za pomocą HTTP/HTTPS
Zadania:
- Nazwa: Make Directory MySQL-Server In/Home/User/.lokalny
plik:
Ścieżka: ~/.Lokalny/mysql-serwer
Stan: Directory
Tryb: 0777
- Nazwa: Pobierz pakiety MySQL-Server
get_url:
URL: https: // pobieranie.Mysql.com/archiwa/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.smoła
Dest: ~/.Lokalny/mysql-serwer
Tryb: 0777
Suma kontrolna: SHA256: https: // pobieranie.Mysql.com/archiwa/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.smoła.SHA265

Pobierz pliki z limitą limitu czasu bez odpowiedzi

W niektórych przypadkach możesz mieć określony adres URL zasobów, który może potrwać dłużej lub jest niedostępny. Może to spowodować zamknięcie połączenia przed odpowiedzią serwera, ponieważ domyślny limit czasu wynosi zwykle 10 sekund. Aby wyraźnie określić wartość limitu czasu, użyj limitu czasu: dyrektywa.

Rozważ następujący podręcznik:

- Gospodarze: Wszyscy
- Nazwa: Pobierz Debian MySQL Server z limitą limitu czasu
Zadania:
- Nazwa: Make Directory MySQL-Server In/Home/User/.lokalny
plik:
Ścieżka: ~/.Lokalny/mysql-serwer
Stan: Directory
Tryb: 0777
- Nazwa: Pobierz pakiety MySQL-Server
get_url:
URL: https: // pobieranie.Mysql.com/archiwa/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.smoła
Dest: ~/.Lokalny/mysql-serwer
Tryb: 0777
Suma kontrolna: SHA256: https: // pobieranie.Mysql.com/archiwa/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.smoła.SHA265
Limit czasu: 30

Powyższy podręcznik określa limit czasu jako 30 sekund, a połączenie zostanie porzucone, jeśli serwer nie odpowiada w ustalonym czasie.

Pobierz pliki z uwierzytelnianiem

Aby pobrać plik do serwera wymagającego uwierzytelnienia, musisz określić wartości logowania.

Rozważ następujący podręcznik:

- Gospodarze: Wszyscy
- Nazwa: Pobierz plik z uwierzytelnianiem
stać się: tak
get_url:
URL: http: // 102.15.192.120/kopie zapasowe/baza danych.smoła.GZ
dest: /kopie zapasowe
Nazwa użytkownika: użytkownik
Hasło: 'pass'
Tryb: 0777
Limit czasu: 5

Pobierz pliki z lokalnej ścieżki pliku

Aby pobrać plik ze ścieżki pliku lokalnego, możesz użyć schematu pliku: // URI, a następnie ścieżki do pliku.

Rozważ następujący podręcznik:

- Gospodarze: Webservers
- Nazwa: Pobierz plik z lokalnej ścieżki pliku
stać się: tak
get_url:
URL: Plik: /// Backups/Secure/Config.smoła.GZ
dest: /dev /null

Pobierz pliki FTP

Pobieranie plików FTP jest bardzo podobne do procesu opisanego w poprzedniej sekcji. Wszystko, co musisz zrobić, to określić ftp: // jako protokół na serwerze.

Aby pobrać bezpieczny plik, musisz również dodać informacje o logowaniu, jak pokazano wcześniej.

Rozważ następujący podręcznik:

- Gospodarze: Wszyscy
Zadania:
- Nazwa: Pobierz plik z serwera FTP
stać się: tak
get_url:
URL: ftp: // 192.168.11.101
dest: /kopie zapasowe
Tryb: 0777

Opcje modułu ansible get_url

Moduł GET_URL obsługuje również różne opcje, których można użyć do określania i monitorowania pobierania i zarządzania plikami. Opcje dostępne w module GET_URL zawierają następujące:

  • Kopia zapasowa: Opcja tworzenia kopii zapasowych, boolean tak i nie, pozwala określić, czy utworzyć kopię kopii zapasowej pliku do pobrania.
  • Grupa: Opcja grupy określa grupę, która ma własność pobranego pliku; Ta opcja jest jak polecenie Chown w UNIX.
  • Nagłówki: Opcja nagłówków służy do określenia niestandardowych nagłówków HTTP w słowniku w formacie skrótu.
  • http_agent: Opcja http_agent określa agenta HTTP.
  • Właściciel: Opcja właściciela określa właściciela plików do pobrania.
  • Seuser: Opcja Seuser ustawia użytkownika w kontekście pliku Selinux.
  • użycie_proxy: Opcja użycia_proxy ustawia, czy należy użyć proxy. Jeśli ta opcja jest ustawiona na false, wszystkie proxy zostaną zignorowane, nawet jeśli masz jeden określony w hoście docelowym.

Wniosek

W tym artykule szczegółowo omówiono moduł GET_URL w Ansible i pokazał, jak używać tego modułu do pobierania plików z różnych źródeł. Możesz użyć tego artykułu, aby odwołać się do pobierania plików w ansible za pomocą modułu get_url.