Каков наилучший способ предоставления закрытого ключа SSH в Azure DevOps Pipeline? - PullRequest
0 голосов
/ 07 июня 2019

Я строю конвейер Azure DevOps, используя Terraform. Конвейер создает сервер Linux, а затем регистрируется на сервере Linux для обновления пакетов и установки Apache.

В настоящее время я храню закрытый ключ в моем репозитории BitBucket (я знаю, что это не лучшая практика), который затем переносится на сервер агента сборки, а затем я вхожу на новый сервер с помощью следующей команды:

ssh -f -q -o BatchMode=yes -o StrictHostKeyChecking=no -i ../private_key.pem ubuntu@$ip sudo apt update -y

Каков наилучший способ сохранить, а затем извлечь закрытый ключ в DevOps Azure?

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Я могу придумать два варианта:

1) Создать сервисное соединение ssh в Azure DevOps.Ссылка на подключение службы в вашем конвейере.https://medium.com/@sibeeshvenu/ssh-deployment-task-in-azure-pipelines-b0e2923bd7b4

2) Сохраните ключ SSH в качестве секретного ключа хранилища ключей Azure, а затем загрузите секретный ключ с помощью интерфейса командной строки Azure во время сборки.

az keyvault secret download --name mysshkey --vault-name mykeyvault --file ~/.ssh/id_rsa

Проверьте подлинность интерфейса командной строки Azure с помощью службыпринципал и предоставьте учетные данные в конвейер, используя группу переменных.

0 голосов
/ 28 июня 2019

Я обнаружил, что Azure DevOps предоставляет вам возможность загружать секретные файлы, являющиеся частью сборки. Вы можете увидеть больше информации здесь:

https://docs.microsoft.com/en-us/azure/devops/pipelines/library/secure-files?view=azure-devops

...