Используйте Git-репозиторий, размещенный на S3, вместо Github / Stash в команде ansible-pull - PullRequest
0 голосов
/ 01 октября 2019

Команда ansible-pull выглядит следующим образом:

ansible-pull common.yml -C develop -U $REPO -fi localhost

Если я использую REPO="ssh://git@github.com/xyz/xyz.git", она работает нормально.

Но если я использую REPO="amazon-s3://.jgit@xyz-bucket/xyz/xyz.git", он, очевидно, не будет работать, поскольку amazon-s3 не является протоколом и только jgit распознает его.

Для справки, я использую это руководство для создания git-репозитория на S3.

Любые взломы или решения приветствуются.

1 Ответ

0 голосов
/ 02 октября 2019

По умолчанию большинство инструментов работают со стандартной версией Git для командной строки C (то есть двоичным файлом git), а не JGit (двоичным файлом jgit). Похоже, у вас есть плагин или другая функциональность в JGit, которая позволяет вам использовать схему amazon-s3, но у вас нет универсального вспомогательного протокола для Git, который позволяет вам делать то же самое.

У вас есть два варианта: либо символическая ссылка jgit на git где-нибудь в вашей переменной PATH, либо найдите и установите подходящий помощник протокола для Git. Предполагая, что у вас есть каталог с именем bin в вашем домашнем каталоге в вашем PATH, запустите ln -s $(which jgit) ~/bin/git. Затем, когда вы (или Ansible) вызовете программу git, вы действительно будете использовать jgit, что заставит все работать.

Сказав это, документация, на которую вы ссылаетесь, утверждает, что JGitне поддерживает подкоманду pull;если это так, и если ansible-pull использует эту подкоманду, то то, что вы хотите сделать, невозможно с помощью приведенных выше команд, и вам потребуется найти и установить эквивалентный помощник протокола для S3 для обычного Git.

...