2010-05-28 4 views
0

우리는 여러 서버가 제공하는 서비스를 구성하기 위해 웹 기반 도구를 작성하고 있습니다. 여기에는 인터페이스 설정, dhcp configs 등이 포함됩니다.웹 생성 구성 파일을 서버에 보내고 서비스를 다시 시작하는 방법

데이터베이스에 설정을 저장하고 적절한 출력을 생성하는보기, 서버로 보내기/가져 오는 방법은 서버용입니까?

나는 그것을 scp를 통해 보내고 ssh를 통해 서비스에 reload 명령을 호출하는 것에 대해 생각하고있다. 또한 파이썬 도구이기 때문에 Func를 사용하여 모든 작업을 수행 할 생각입니다. 파이썬 기반 (장고) 구성 도구와 통합 될 것입니다.

다른 제안은 없습니까?

답변

0

Fabric을 살펴볼 수 있습니다. 예를 들어

, 이것은 원격 호스트에 의욕 서버를 시작하고이 지역 변경 집합을 밀어 내 백업 스크립트 중 하나에서 적응 발췌 한 것입니다

from fabric.api import * 
env.hosts = ['[email protected]'] 

def mybckp(): 
    run('cd ~/somedir; hg serve -a 111.222.111.222 -d') # start mercurial server in daemon mode 
    local('hg push') # push local changesets 

그것을 실행하려면, 단순히 입력 :

fab mybckp 

기본적으로 Fabric이 제공하는 것은 간단합니다. & Python 스크립트 내부에서 하나 이상의 (원격) 호스트의 셸에 편리하게 SSH 액세스 할 수 있습니다.

+0

Fabric vs Func을 조사 할 때 유망 해 보입니다. – JPG

0

꼭두각시 (서버 그룹 만들기)를 관리하려면 PuppetForeman을 찾고 있다고 생각합니다.

Chef, Bcfg2, Capistrano 등 다양한 방법이 있습니다. Puppet은 현재 가장 큰 "주도권"을 가지고 있습니다. 확실히 학습 곡선이 있지만 결과는 그만한 가치가 있습니다.

서버 구성 파일을 꼭두각시 마스터 (버전 제어에서)로 유지할 수 있습니다. 또한 최신 설정 파일을 마스터에 배포하면 인형 클라이언트는 자동으로 파일을 가져 와서 서비스를 다시 시작할 수 있습니다. 퍼핏 "템플릿"은 각 서버에 대한 설정 파일을 동적으로 생성 할 수 있습니다.

인형극에는 패키지 (apt, yum), 파일 및 OS 인식과 같은 항목에 대한 "제공자"가 있습니다.

0

질문이 다소 모호하기 때문에 실제로하려는 의도에 따라 달라집니다. 다른 답변은 사용 가능한 도구를 다룹니다. 다른 하나를 선택하면 목적이 내려집니다.

서버 및 해당 서버의 서비스를 관리 하시겠습니까? 그렇다면 퍼핏, CFEngine 또는 서버 구성 관리를위한 다른 도구를 사용해보십시오.

또는 더 구체적으로 말하면 서버와 통신하는 배포/빌드 아웃 도구를 찾고 계십니까? 그래서 당신은 "mytool deploy myproject"라인을 따라 뭔가를 입력 할 수 있고, 프로젝트를 모든 서버로 전파 할 수 있습니까? 어떤 경우에는 직물이 사용하는 도구가 될 것입니다.

일반적으로 좋은 구성은 둘 다로 구성됩니다.하지만 DHCP (네트워크 관리/DHCP 관리)의 소리에서 가치가있는 부분에 대해서는 꼭두각시를 사용하십시오.

1

주변의 모든 윙윙 거리기 때문에 설정 관리를 위해 퍼핏을 사용해 보았습니다. 불행히도, 나는 (너무 늦게) puppetmaster가 무섭게 비늘 잡히고, 이기종 환경을 잘 처리하지 못한다는 것을 발견했습니다. 수십 개의 서버에서 작동하지만 고유 아키텍처로 인해 확장이되지 않습니다.

그래서 Cfengine 3으로 전환했습니다. 분산 아키텍처 덕분에 성능에 거의 영향을주지 않으며 확장 성이 훨씬 뛰어납니다. 또한, 나중에 Puppet은 Cfengine 2를 비효율적으로 Ruby에서 재 구현하려는 시도임을 알게되었습니다. http://verticalsysadmin.com/blog/uncategorized/relative-origins-of-cfengine-chef-and-puppet

셋업을 Cfengine 3와 함께 사용하지 않고 유용하게 사용할 예정이라면!