문제

진정한 생산 환경에 배치 할 준비를하고 있습니다. 내가 사실이라고 말할 때 나는 서버에 다른 쓰레기가 있기 때문에 현재 생산 환경이 준비 될 것이라는 것을 의미하며 실제로 내 생산 기계가 될 새로운 더 큰 슬라이스를 만들고 있습니다.

Capistrano-Ext 보석은 배포 레시피를 매우 쉽게 분리했습니다. 그러나 내가 겪는 한 가지 문제는 한 조각에서 다른 조각으로 내 코드를 가져 오는 것입니다. 제작에 사용할 준비 슬라이스에 Git Repo가 설치되어 있습니다. 흐름은 다음과 같습니다.

무대에서 생산으로 무대 푸시시 국부적으로 로컬 테스트를 현지에서 푸시하는 지역 테스트 개발 ...

따라서 스테이징과 생산 사이의 안전한 연결을 설정하는 방법이 분명히 필요합니다. 생산에 배치 할 때 "허가 거부 (publickey)"를받습니다. 설정되지 않기 때문에 오류가 발생합니다. 이 연결을 어떻게 설정할 수 있습니까? 제작 서버에서 키를 생성하고 내 준비에 대중을 배치해야합니까? 제작 서버의 사용자가 내 준비 서버에 연결하려는 사용자를 어떻게 알 수 있습니까?

도움이 되었습니까?

해결책

지점과 Capistrano Multistage 당신의 친구입니다.

Git Repo 문제에 액세스 할 수없는 생산을 해결하려면 시도하십시오.

set :deploy_via, :copy

… 이것은 로컬로 체크 아웃하고 타르 공을 밀어 배포합니다.

다른 팁

Capistrano를 사용할 때 분기 또는 버전 태깅이 스테이징 대 프로덕션을 차별화하는 데 훨씬 더 잘 작동한다는 것을 알았습니다.

예를 들어, 애플리케이션을 위해 '준비'및 '프로덕션'브랜치를 설정하고 소스 제어 도구를 사용하여 하나에서 다음 마이그레이션 변경을 관리합니다. 배포 중에는 일반적으로 원하는대로 배포되지만 기본 지점 대신 특정 지점이 있습니다.

스테이징에서 프로덕션으로 직접 홍보 할 필요는 없으며, 실제로 스테이징 기계에 액세스 할 수있는 사람은 잠재적으로 생산 서버에 액세스 할 수 있기 때문에 나쁜 아이디어로 간주 될 수 있습니다. 대부분의 환경에서 스테이징 서버는 생산 사이트보다 훨씬 우연히 처리되므로 보안 프로파일은 일반적으로 상당히 다릅니다.

제작 서버에서 키를 생성하고 내 준비에 대중을 배치해야합니까?

예.

제작 서버의 사용자가 내 준비 서버에 연결하려는 사용자를 어떻게 알 수 있습니까?

ProductionUser는 귀하가 연결하는 사용자가 무엇이든 할 것입니다 (사용자 참조 : 사용자). StagingUser는 Git URL에서 나옵니다 (리포지토리 참조).

당신이 사용할 때

set :deploy_via, :remote_cache

(기본값), 두 개의 SSH 연결이 실제로 발생합니다. 첫 번째는 로컬 머신에서 프로덕션에 이르기까지, 레시피에서 구성된대로 '사용자'를 사용합니다.

set :user, 'www-data'

두 번째 SSH 연결은 해당 사용자가 생산시 GIT 원산지에 의해 이루어집니다. 따라서 Git Origin이 준비중인 경우 프로덕션 사용자는 Staging에 다시 연결하여 Git에서 코드를 가져 오려고합니다.

set :repository, "staginguser@staging.com:project.git"

이것을 시도하십시오 : ssh는 사용자로서 생산에 대한 ssh. 그런 다음 실패한 명령을 손으로 실행하십시오. "허가 거부"와 암호를위한 프롬프트가 표시됩니다. 스테이징 서버 사용자의 공개 키를 프로덕션 박스에 추가하면 상황이 더 잘 작동합니다.

또한 :

set :gateway, 'staging server ip'

방화대 생산 상자까지 완전히 터널을 터널 할 수 있어야합니다. 그러나 스테이징에서 배포하는 경우 그런 식으로 진행하려면 스테이징 상자에 키를 설정해야합니다.

참고로, 홈 박스 에서이 전체 프로세스를 수행 할 수 있어야합니다. 스테이징은 실제로 Capistrano 보석을 가질 필요가 없어야합니다. 섬기는 사람. 여기에는 스테이징 서버에 로그인이 포함됩니다. :)

둘 사이에 데이터를 푸시하는 문제가있는 경우 프로덕션 구성에만 쉽게 추가 될 수있어 스테이징에서 자동으로 데이터를 가져 와서 RSYNC의 IT 오버를 자동으로 가져옵니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top