나는 패브릭 주위에 머리를 쓰려고합니다.배포와 같은 "트리"용 패브릭
여기fab -R prod prepare:all
-R 자극이 사용자와 대상 호스트를 정의하고, 뭔가 같은 : 나는 이런 식으로 뭔가를 달성하려면 명령 줄에서
+--+ b2b (+config)
+------+ api --+
| +--+ b2c (+config)
|
| +---+ service1 (+config)
| |
| +---+ service2 (+config)
all +---------+ web --+
| +---+ service3 (+config)
| |
| +---+ service4 (+config)
|
|
+------+ db (+config)
:
우리는 서로 다른 시스템을 가지고
'prod':
{
'user': 'some_prod_user',
'hosts': ['some_prod_host1', 'some_prod_host2']
}
이 맵은 구성처럼 처리되어 각 노드에 연결됩니다.
이제이 명령을 실행할 때 노드 "all"이 모든 자식을 호출하고 모든 노드가 작업 준비를 수행 할 때까지 자식을 호출해야합니다.
fab -R prod prepare:api.b2b
은 b2b 노드 만 준비하면됩니다.
저는 이미 파이썬 (객체 계층 구조)으로 모든 것을 구축했습니다.
문제 : 각 하위 클래스가 '준비'메소드를 실행할 때 어떻게 전체 'env'사전을 만들 수 있습니까?
실행 모델에 따라 전체 'env.host_string'은 이미 서브 클래스에 도달하자마자 빌드되고 다시 재정의 할 수 없습니다.
이렇게 나에게 떠오르는 생각은 - 직물이 내게 맞는 도구인가?
모든 도움을 주실 수 있습니다. 이 같은 시도 할 수처럼
환호 마르셀
편집
보인다 :
all
prepare.sh
execute.sh
- api
prepare.sh -> calls [b2b|bc2]/prepare.sh
execute.sh -> calls [b2b|bc2]/execute.sh
- b2b
fabfile.py
prepare.sh -> invokes fab
execute.sh -> invokes fab
- b2c
fabfile.py
prepare.sh -> invokes fab
execute.sh -> invokes fab
- web
prepare.sh
execute.sh -> invokes fab
- service1
fabfile.py
prepare.sh -> invokes fab
execute.sh -> invokes fab
- service2
fabfile.py
prepare.sh -> invokes fab
execute.sh -> invokes fab
... you get the idea
지금 내가 최고 수준에 prepare.sh 전화를 아래로 계단식 수 있어요을 자식 체인. 각 하위 모듈은 prepare.sh 하위 모듈을 모두 호출합니다. 나는 또한 각 노드를 별도로 호출 할 수있다.
어떻게 생각하십니까? 일반적으로
마르셀