Fabri c 2 автоматизирует ошибку развертывания, когда git тянет на удаленный сервер. Хранилище не найдено - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь автоматизировать развертывание с помощью Fabri c 2.

Когда я вручную выполняю команду git через командную строку на удаленном сервере, все работает нормально.

Когда я пытаюсь сделать то же самое с моим скриптом Fabric / Invoke, он не позволяет мне тянуть.

Хотя он позволяет мне делать git status и другие команды.

код:

# Imports
from fabric import Connection
from fabric.tasks import task
import os

# Here i pass my local passphrase:
kwargs = {'passphrase': os.environ["SSH_PASSPHRASE"]}

@task
def serverdeploy(c, branch="Staging"):
    con = Connection('myuser@myhost', connect_kwargs=kwargs)
    with con.cd("/home/user/repository/"):
        # Activate the virtual environment:
        with con.prefix("source ENV/bin/activate"):
            con.run("git pull origin {}".format(branch))

Результаты:

git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Примечания:

Меня даже не спрашивают о ключевой фразе при выполнении операции.

Я пытался выполнить вытягивание без активации среды, но это тоже не сработало.


В чем может быть проблема?

Заранее спасибо, что взяли время!

Ответы [ 2 ]

1 голос
/ 27 января 2020

Пожалуйста, поместите con.run("git pull origin {}".format(branch)) за пределами with con.prefix("source ENV/bin/activate"):.

Ваш код не имеет ничего общего с переводчиком или виртуальным окружением! Попробуйте, и это должно работать!

0 голосов
/ 31 января 2020

Наиболее вероятная проблема заключается в том, что пользователь, который входит в систему как пользователь, имеет правильную настройку ключа s sh для bitbucket.org, но пользователь соединения fabri c отличается. Вы можете проверить правильность установки, используя эти две команды в качестве пользователя, к которому fabri c подключается как:

ssh -T git@bitbucket.org
ssh -T -i /path/to/private_key git@bitbucket.org

Чтобы устранить эту проблему, скопируйте закрытый ключ в каталог /home/myuser/.ssh и добавьте запись конфигурации s sh для bitbucket.org в /home/myuser/.ssh/config:

Host bitbucket.org
  IdentityFile /path/to/private_key
...