Fabric을 사용하여 웹 앱 코드를 개발, 스테이징 및 프로덕션 서버에 배포하고 싶습니다. 내 fabfile :
def deploy_2_dev():
deploy('dev')
def deploy_2_staging():
deploy('staging')
def deploy_2_prod():
deploy('prod')
def deploy(server):
print 'env.hosts:', env.hosts
env.hosts = [server]
print 'env.hosts:', env.hosts
샘플 출력 :
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Fabric 문서에set_hosts()
표시된대로 작업을 생성하면 env.hosts가 올바르게 설정됩니다. 그러나 이것은 실행 가능한 옵션이 아니며 데코레이터도 아닙니다. 명령 줄에서 호스트를 전달하면 궁극적으로 fabfile을 호출하는 일종의 셸 스크립트가 생성됩니다. 저는 하나의 도구가 작업을 제대로 수행하는 것을 선호합니다.
Fabric 문서에서 'env.hosts는 단순히 Python 목록 객체'라고 말합니다. 내 관찰에 따르면 이것은 사실이 아닙니다.
아무도 여기서 무슨 일이 일어나는지 설명 할 수 있습니까? 배포 할 호스트를 어떻게 설정할 수 있습니까?