Моя голова в последнее время была в пространстве DevOps в последнее время, когда я был все больше и больше рук с AWS. Я подумал о идее, которую у меня было некоторое время назад … Что будет вовлечена в запуском клиента Ephemeral BitTorrent на AWS с загрузоками, автоматически сохраненными в S3?
Моя конечная цель состояла в том, чтобы уметь вращаться и разорвать удаленный клиент BitTorrent все из командной строки. Я знал, что хочу бежать Передача Когда я использовал его в прошлом, так как у него есть веб-интерфейс для добавления и удаления торрент и мониторинга загрузки.
Впутник
Когда я принимаю это в облаке, я действительно хотел, чтобы трафик BitTorrent настроен через VPN, а не прямо на экземпляр хоста. Когда я впервые начал экспериментировать с этой идеей, я умоляю, вращающуюся вверх по экземпляру T2.Micro через консоль AWS, подключая через SSH и устанавливая OpenVPN непосредственно на хосте. Я быстро обнаружил трудный путь, чем начать OpenVPN, когда подключился к хосту через SSH, не будет работать, как я думаю, по умолчанию по умолчанию требуется над сетевым трафиком Host, сразу же бросив мое SSH-соединение и кирпича сервера, пока он не перезагрузится через консоль AWS.
Это приведет меня к доке. Наличие контейнеров OpenVPN ощущается как более разумное решение, так как он позволит мне SSH в экземпляр хоста для Tinker с настройкой. Я понял, что кто-то, должно быть, уже создал изображение Docker OpenVPN и после того, как некоторые обнаружили Этот пользователь GitHub Haugene создал открытое названное изображение, Docker-Transmission-OpenVPN , который связывается как OpenVPN, так и передача вместе. Бонус!
Синхронизация загрузки на S3
После загрузки Полная передача копий файлов на /data/Завершено
каталог. Мне нужно было выяснить способ автоматически копировать загрузки S3. Для этого я решил написать свою собственную утилиту в том, что просто смотрели бы содержимое каталога для новых файлов и загружать их в ведро S3. Эта утилита называется Go-Watch-S3 и у меня есть посвященный блог по поводу этого здесь Отказ
Как контейнер передачи, так и контейнер, работающий GO-Watch-S3, разделяет каталог, установленный привязкой, поэтому, когда передача пишет файлы на это /data/Завершено
Каталог Go-Watch-S3 увидит новые файлы и загрузит их. Довольно аккуратно!
Предоставление экземпляра с террафом
Предоставление обрабатывается Террафом Конфигурация, которая устанавливает нашу инфраструктуру. Он создает экземпляр EC2, группу безопасности, чтобы мы могли получить доступ к интернет-интерфейсу передачи, а также соответствующую роль IAM, политику и профиль экземпляра, поэтому экземпляр способен записывать файлы нашему существующему ведрю S3.
Установка программного обеспечения на экземпляр рассматривается как часть скрипта пользовательских данных, который работает при первом запусках экземпляра и определяется как часть aws_instance Тип ресурса в террафоре. Этот скрипт на самом деле относительно прост, так как он просто устанавливает Docker, вытаскивает вышеупомянутые изображения и запускает их. Я рассмотрел использование Docker Compose Как обычно приятнее опыт при оморожении нескольких контейнеров, но вместо этого опережал команды Docker Run Vanilla Docker.
Наконец, все, что осталось сделать, это применить конфигурацию с Террафом применяется
создать наши ресурсы на AWS. После применения конфигурации URL-адрес веб-интерфейса передачи будет выведен, однако вам нужно будет подождать несколько минут для сценария запуска, чтобы сделать это. Как только интернет-интерфейс доступен, торренты могут быть добавлены с завершенными загрузоками, автомагически скопированными на S3!
Как только вы закончите, уничтожить инфраструктуру, которую вы только что создали, может быть снесена с Террафору уничтожить
Отказ
С заявкой очевидного
Таким образом, я чувствую, что это был забавный проект «игрушек», хотя я не чувствую, что нужно больше улучшать его. Зуд был поцарапан, если вы будете. Чтобы увидеть полную конфигурацию террафора, проверьте Террафор-Трансмиссия-AWS на github.
Хотя нет ничего незакового в отношении BitTorrent с чистой точки зрения технологии, пиратный контент может быстро отслеживать вас к выходу от AWS или ухудшающуюся учетную запись закрытую.
Оригинал: «https://dev.to/willdady/creating-a-remote-bittorrent-box-with-terraform-transmission-and-docker-on-aws-2m40»