Latar Belakang
Repos:
myrepo
, Server gitlab diri-host, di repo pribadi dengan (diuji) menyebarkan kuncimainrepo
, di server gitlab yang di-hosting sendiri, dalam repo pribadi yang berfungsi dengan baik.
Referensi package.json myrepo
seperti:
"dependencies": {
"myrepo": "git+ssh://git@gitlab.myhost.com:myusernamespace/myrepo.git"
}
The mainrepo
dikerahkan ke mesin virtual beanstalk AWS elastis tanpa masalah.
Masalah
Masalahnya adalah proses pembangunan pada contoh beanstalk gagal, karena tidak memiliki izin untuk mengakses server gitlab
Rincian kesalahan
Dalam log UI web AWS
2016-02-04 13:36:59 UTC+0000 ERROR During an aborted deployment, some instances may have deployed the new application version. To ensure all instances are running the same version, re-deploy the appropriate application version.
2016-02-04 13:36:59 UTC+0000 ERROR Failed to deploy application.
2016-02-04 13:36:58 UTC+0000 ERROR Unsuccessful command execution on instance id(s) 'i-111111f'. Aborting the operation.
2016-02-04 13:36:58 UTC+0000 INFO Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
2016-02-04 13:36:58 UTC+0000 ERROR [Instance: i-111111f] Command failed on instance. Return code: 1 Output: [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/50npm.sh] command failed with error code 1: /opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh + /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install npm ERR! git clone git@gitlab.myhost.com:myusernamespace/myrepo.git Cloning into bare repository '/tmp/.npm/_git-remotes/git-git-myhost-com-myysername-myrepo-git-99d4209c'... npm ERR! git clone git@gitlab.myhost.com:myusernamespace/myrepo.git Host key verification failed. npm ERR! git clone git@gitlab.myhost.com:myusernamespace/myrepo.git fatal: Could not read from remote repository. npm ERR! git clone git@gitlab.myhost.com:myusernamespace/myrepo.git npm ERR! git clone git@gitlab.myhost.com:myysername/ref.
Di nodejs.log
:
353 error Host key verification failed.
353 error fatal: Could not read from remote repository.
353 error
353 error Please make sure you have the correct access rights
353 error and the repository exists.
Pekerjaan sebelumnya
Untuk memperbolehkan Gitlabs untuk melayani repos lebih dari ssh, saya menambahkan kunci ssh publik ke kunci penyebaran Gitlabs untuk proyek (dan kunci yang divalidasi dengan git clone git@gitlab.myhost.com:myusernamespace/myrepo.git
)
Kemudian untuk memungkinkan akses Pohon Kacang elastis untuk Gitlab, saya menambahkan kunci publik yang sama terhadap lingkungan dengan menciptakan 01_authorized_keys.config
di ebextensions
:
files:
/home/ec2-user/.ssh/authorized_keys:
mode: "000400"
owner: ec2-user
group: ec2-user
content: |
ssh-rsa AAAA{...the existing eb authorized_keys...} existing_authorized_keys_name
ssh-rsa AAAA{...gitlab.pub...} me@myhost.com
Tapi itu gagal :(
Alternatif sudah dicoba
Hal-hal lain yang saya coba:
- Menyiapkan kunci dengan menggaungkannya
authorized_keys
sesuai jawaban ini - Menambahkan kunci publik yang sudah ada di otor_keys ke daftar penerapan Gitlabs.
Asumsi
eb deploy
akan menggunakan ebextensions bahkan jika tidak- Saya harus menambahkan kunci publik ke instance EB
- Saya belum menyiapkan contoh pengujian lain untuk membangun seluruh proyek dengan hanya menggunakan kunci gitlab, jadi saya berasumsi jika kunci delit gitlab bekerja secara manual, mereka akan bekerja melalui npm.