
Capistrano를 사용한 배포에 대한 모범 사례를 찾습니다.
제가 배포를 어떻게 수행했는지 간단한 설명부터 시작하고 싶습니다.
capistrano는 개발자의 컴퓨터에 로컬로 설치됩니다. capistrano 옵션을 사용하여 Think Gateway를 배포합니다 :gateway
. 첫째, :gateway
옵션을 사용하면 게이트웨이 호스트에만 SSH 연결이 필요하다고 생각했는데 SSH 연결이 필요한 것으로 나타났습니다(공개 키) 배포하려는 모든 호스트에 적용됩니다.
애플리케이션을 배포하는 편리하고 안전한 방법을 찾고 싶습니다.
예를 들어, 새로운 개발자가 일을 시작하는 경우 자신의 이름을 입력하는 것이 훨씬 더 편리합니다.공개_키모든 애플리케이션 서버가 아닌 게이트웨이 서버에서만 가능합니다. 반면에 나는 그가 특히 서버에 연결되는 것을 원하지 않습니다SSH게이트웨이에는 개발자이기 때문에 배포만 하면 됩니다.
Capistrano 배포에 대한 모범 사례를 알고 있다면 알려주시기 바랍니다.
답변1
Capistrano는 SSH가 모든 관리의 기반이라는 가정하에 처음부터 설계되었습니다. 게이트웨이로 사용되는 시스템은 SSH 연결을 수락하고 발급해야 합니다. 그 주변에는 거리가 없습니다. 개발자는 게이트웨이에 대한 SSH 액세스 권한을 얻게 됩니다.
몇 가지 요구 사항이 있습니다.
- 배포 대상의 인증 키 목록에 새 개발자를 쉽게 추가할 수 있습니다.
- 개발자에게 게이트웨이 박스에 완전한 터미널을 제공하고 싶지 않습니다.
배포 대상에 대한 키잉 처리 방법을 결정해야 합니다. 여기에는 두 가지 주요 옵션이 있습니다.
- 일반 키를 사용하면 모든 사람이 하나를 얻고 이미지/대상에 구워집니다.
- 특정 키를 사용하면 모든 사람이 자신의 키를 갖게 되며 다음과 같은 방법을 통해 Authorized_keys 목록을 관리할 수 있습니다.인형또는요리사.
두 번째 옵션이 가장 안전하지만 구성 관리 시스템이 있는 경우 가장 잘 작동합니다. 실제로 하나를 사용해야 하며 게이트웨이 서버에 Authorized_keys 파일을 제공할 수도 있습니다.
개발자가 시스템에 SSH로 접속한 후 수행할 수 있는 작업을 제한하는 몇 가지 옵션이 있습니다.
Capistrano가 게이트웨이와 실제로 작동하는 방식에 따라 이들 중 일부는 작동을 방해할 수 있으므로 테스트가 필요합니다. 작동하려면 전체 쉘이 필요할 수도 있습니다.