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:
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:
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:
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.