Отговорни

Как да изтеглите файлове с помощта на модула Ansible get_url

Как да изтеглите файлове с помощта на модула Ansible get_url

Като потребител на Linux вероятно сте запознати с инструменти, които ви позволяват да изтегляте файлове от отдалечени сървъри, използвайки HTTP, HTTPS и FTP протоколи, като wget и cURL. Когато изпълнявате задачи за автоматизация, от време на време ще трябва да изтегляте файлове и пакети на отдалечени хостове. Въпреки че можете да използвате wget и cURL на отдалечените хостове, за да изпълнявате тази функция, можете също да заобиколите необходимата инсталация, за да използвате тези инструменти, използвайки модула Ansible get_url.

Този урок ви показва как да използвате командата Ansible get_url за изтегляне на файлове от отдалечени сървъри.

Преди да започнем, командата Ansible get_url изисква следните предпоставки:

  1. Отдалеченият сървър, от който ще се изтеглят файловете, трябва да има директен достъп до хост сървъра.
  2. Хост сървърът трябва да поддържа HTTP и HTTPS протоколи.

Относно модула get_url

Преди да научите как да внедрите модула get_url, първо има няколко неща, които си струва да разберете за този модул. Модулът get_url поддържа следните функции:

След това ще ви покажем как да използвате модула get_url за изтегляне на файлове с различни протоколи и конфигурации.

Използване на модула get_url за получаване на файлове

Следват някои примери, които можете да приложите с помощта на модула get_url, когато изтегляте файлове от отдалечен сървър.

Изтеглете файлове от HTTP / HTTPS сървър с директен URL адрес

Помислете за следната книга за игри, която създава директория в ~ /.local и използва модула get_url за изтегляне на пакета Debian MySQL.

ЗАБЕЛЕЖКА: Можете да намерите MYSQL сървърни пакети в ресурса, предоставен по-долу:

https: // linkfy.към / mysql-пакети

- домакини: всички
- име: Изтеглете сървъра на Debian MySQL, използвайки HTTP / HTTPS
задачи:
- name: Направете директория mysql-server в / home / user /.местни
файл:
път: ~ /.локален / mysql-сървър
състояние: директория
режим: 0777
- име: ВЗЕМЕТЕ MySQL-сървърни пакети
get_url:
url: „https: // изтегляния.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.катран ”
dest: ~ /.локален / mysql-сървър
режим: 0777
контролна сума: md5: 5568e206a187a3b658392520540f556e

Горната книга за игри започва със създаване на директория в $ HOME /.local / mysql-сървър, където изтегленият пакет трябва да се съхранява. Ако създавате директория в привилегирована директория, не забравяйте да използвате директивата „стани“.

След това книгата за игри извиква модула get_url и посочва URL адреса, от който да изтеглите пакета, последван от целевата директория, в която да се съхранява файла. В последния раздел на учебната книга се посочва контролната сума md5 за проверка на валидността на файла.

ЗАБЕЛЕЖКА: В горната книга за игри сме кодирали твърдо контролната сума, но можете да посочите URL адреса, на който се хоства контролната сума.

След като стартирате книгата за игри, ще получите изход, показващ успеха или неуспеха на задачите.

$ ansible-playbook download_mysql_server.yml PLAY [Изтеглете сървъра на Debian MySQL, използвайки HTTP / HTTPS] ************************************** **************************************************** **************************************************** ******************
ЗАДАЧА [Събиране на факти] *********************************************** **************************************************** **************************************************** *****************************************
добре: [35.222.210.12]
ЗАДАЧА [Направете директория mysql-server в / home / user /.местно] ************************************************** **************************************************** **************************************************** ***********
35.222.210.12: добре = 3 променени = 1 недостижим = 0 неуспешно = 0 пропуснато = 0 спасено = 0 игнорирано = 0

След като процесът приключи, можете да влезете в хоста и да проверите дали файлът съществува.

Изтеглете файлове с контролна сума sha256

Можете също така да изтеглите файлове и да ги проверите, като използвате контролната сума sha256, както е показано в примерната книга за игра по-долу:

- домакини: всички
- име: Изтеглете сървъра на Debian MySQL, използвайки HTTP / HTTPS
задачи:
- name: Направете директория mysql-server в / home / user /.местни
файл:
път: ~ /.локален / mysql-сървър
състояние: директория
режим: 0777
- име: ВЗЕМЕТЕ MySQL-сървърни пакети
get_url:
url: https: // изтегляния.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.катран
dest: ~ /.локален / mysql-сървър
режим: 0777
контролна сума: sha256: b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

За да използвате URL адрес, вместо да кодирате твърдо контролната сума, разгледайте следния пример:

- домакини: всички
- име: Изтеглете сървъра на Debian MySQL, използвайки HTTP / HTTPS
задачи:
- name: Направете директория mysql-server в / home / user /.местни
файл:
път: ~ /.локален / mysql-сървър
състояние: директория
режим: 0777
- име: ВЗЕМЕТЕ MySQL-сървърни пакети
get_url:
url: https: // изтегляния.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.катран
dest: ~ /.локален / mysql-сървър
режим: 0777
контролна сума: sha256: https: // изтегляния.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.катран.sha265

Изтеглете файлове с изчакване при липса на отговор

В някои случаи може да имате посочен URL адрес на ресурс, който може да отнеме повече време за отговор или е недостъпен. Това може да доведе до затваряне на връзката, преди сървърът да отговори, тъй като времето за изчакване по подразбиране обикновено е 10 секунди. За да посочите изрично стойността на времето за изчакване, използвайте времето за изчакване: директива.

Обмислете следната книга за игри:

- домакини: всички
- име: Изтеглете сървъра на Debian MySQL с изчакване
задачи:
- name: Направете директория mysql-server в / home / user /.местни
файл:
път: ~ /.локален / mysql-сървър
състояние: директория
режим: 0777
- име: ВЗЕМЕТЕ MySQL-сървърни пакети
get_url:
url: https: // изтегляния.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.катран
dest: ~ /.локален / mysql-сървър
режим: 0777
контролна сума: sha256: https: // изтегляния.mysql.com / archives / get / p / 23 / file / mysql-server_8.0.22-1debian10_amd64.deb-bundle.катран.sha265
изчакване: 30

Горната книга за игри определя времето за изчакване като 30 секунди и връзката ще бъде прекъсната, ако сървърът не отговори в рамките на зададеното време.

Изтеглете файлове с удостоверяване

За да изтеглите файл на сървър, който изисква удостоверяване, ще трябва да посочите стойностите за вход.

Обмислете следната книга за игри:

- домакини: всички
- име: Изтеглете файл с удостоверяване
ставам: да
get_url:
url: http: // 102.15.192.120 / архиви / база данни.катран.gz
dest: / архиви
потребителско име: потребител
парола: „pass“
режим: 0777
изчакване: 5

Изтеглете файлове от локалния файлов път

За да изтеглите файл от локален файлов път, можете да използвате схемата file: // URI, последвана от пътя към файла.

Обмислете следната книга за игри:

- хостове: уеб сървъри
- име: Изтеглете файла от локалния път на файла
ставам: да
get_url:
url: file: /// backups / secure / config.катран.gz
dest: / dev / null

Изтеглете FTP файлове

Изтеглянето на FTP файлове е много подобно на процеса, описан в предишния раздел. Всичко, което трябва да направите, е да посочите ftp: // като протокол към сървъра.

За да изтеглите защитен файл, трябва също да добавите данните за вход, както е показано по-рано.

Обмислете следната книга за игри:

- домакини: всички
задачи:
- име: Изтеглете файл от FTP сървър
ставам: да
get_url:
url: ftp: // 192.168.11.101
dest: / архиви
режим: 0777

Отговорни опции на модула get_url

Модулът get_url също така поддържа различни опции, които можете да използвате за определяне и наблюдение на изтеглянето и управлението на файлове. Опциите, достъпни с модула get_url, включват следното:

Заключение

Тази статия обсъди подробно модула get_url в Ansible и ви показа как да използвате този модул за изтегляне на файлове от различни източници. Можете да използвате тази статия за справка как да изтегляте файлове в Ansible с помощта на модула get_url.

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...