Git Pull из Bitbucket, используя ANSIBLE и JENKINS
Привет всем, я новичок в ansible, я работаю над Ubuntu 16.04 и ansible 2.2, как вытащить хранилище bitbucket на удаленный сервер, используя ansible? Я подключился к хостам и смог выполнить команду ping или выполнить простую команду, используя команду ansible для удаленного сервера. Я пробовал этот метод клонирования частного репо на удаленном сервере, но получил эту ошибку:
"stderr": "Клонирование в '/home/deploy/test'...\nPermission denied (publickey).\r\nfatal: Не удалось прочитать из удаленного хранилища. \ n \ n Пожалуйста, убедитесь, что у вас есть правильные права доступа \ и хранилище существует.\n",
Нужно ли генерировать ssh-ключ из bitbucket или вставлять мой открытый ключ в bitbucket? Как я уже говорил, я очень новый, и это очень срочно, спасибо.
2 ответа
Лучшее решение - создать пару ключей на вашей рабочей станции, загрузить открытый ключ в bitbucket и скопировать закрытый ключ пользователю, с помощью которого вы выполняете клон git на конечном сервере. С помощью этого решения вы можете автоматизировать развертывание на нескольких серверах без создания новой пары ключей на каждом из них.
Вы можете указать файл ключа с опцией key_file
из модуля Ansible git
В общем, использование закрытого ключа не считается безопасным, потому что, если целевой сервер взломан, этот ключ открыт. Безопасной альтернативой является переадресация агента ssh из ansible экземпляра. таким образом, только ANSIBLE ключ должен быть зарегистрирован в Bitbucket, и он никогда не будет выставлен на целевых хостах. посмотрите на эту статью: https://www.jeffgeerling.com/blog/2018/cloning-private-github-repositories-ansible-on-remote-server-through-ssh если вы хотите знать, как добавить ключ ssh агенту ssh: https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/