it-swarm-ko.tech

서버 배포 자동화

여러 클라이언트에 대해 거의 동일한 서버와 VPS를 지속적으로 설정하고 있으며 시간이 많이 걸릴 수 있습니다. 종종 각 배포간에 변경되는 유일한 사항은 제공 될 다른 웹 사이트입니다. 이 모든 것을 자동화하고 56 개의 동일한 서버를 설정하는 지루한 단조 로움을 취할 수있는 쉬운 방법이 있습니까?

지금까지 배포 한 서버는 Ubuntu 뿐이지 만 다른 Linux OS 또는 Windows를 사용하기 시작할 수도 있습니다. 지금까지 Capistrano를 살펴 보았지만 작업을 수행 할 프로그램을 작성하는 데 초점이 맞춰진 것 같습니다. Ruby)

27
Josh Hunt

Puppet 당신이하려는 일에 완벽하게 들리지만, 현재로서는 Windows가 지원되지 않는다는 경고가 있습니다.

귀하의 경우 컴퓨터에서 동일한 모든 패키지 측면에서 서버 노드를 정의합니다. 그런 다음 개별 호스트를 Server에서 상속하는 노드로 정의하고 이에 대한 특정 고유 항목을 설정합니다.

Puppet은 선언적입니다. 각 상자에 있어야하는 리소스 측면에서 상자를 설명 할 수 있습니다. 따라서 ssh-해당 리소스에 대한 클래스를 작성하고-클래스 내부에 FreeBSD와 Ubuntu에서 ssh가 어떻게 약간 다르게 호출되는지에 대한 논리를 포함 할 수 있습니다. 또한 Redhat 내부에서는 yum, Debian 기반 배포판에서는 apt-get, BSD에서는 ports을 사용하는 것을 알고 있습니다. 이제 서버 노드에 include ssh와 같은 줄이있을 것입니다. puppet은 우분투인지 Redhat인지 FreeBSD인지 기억할 필요없이 올바른 작업을 수행하고 SSH를 머신에 배치합니다.

좋은 점은 모든 서버 항목이 한곳에 있다는 것입니다. 서버 노드 정의에 추가하면 모든 시스템이 그에 따라 구성을 업데이트합니다.

지금은 Puppet을 사용하여 3 개의 상자 만 관리하고 있지만 이미 보상을 받았습니다. 실험에서 자극 프레젠테이션에 사용할 상자를 설정하는 데 일주일을 보낸 후 그래픽 카드 드라이버가 내가 장착 한 Ubuntu 버전 (8.04)에서 너무 오래된 것으로 판명되었습니다. 최신 우분투 (9.04)를 설치해야했지만 그 후 꼭두각시를 apt-get하고 실행하기 만하면됩니다. 1 주일 동안 설정했던 모든 것이 복원되었습니다.

Puppet에는 약간의 학습 곡선이 있지만 학습을 성공적으로 피했습니다. Ruby-꼭두각시가 쓰여진 것이기 때문에 사용하고 있다는 것을 알고 있습니다. 문서의 예제와 위키의 레시피 를 성공적으로 수정했습니다. 또 다른 단점은 퍼펫이 처음에 작업을 수행하는 데 시간이 조금 더 걸린다는 것입니다. 모든 컴퓨터가 한 곳에 저장됩니다. 버전 제어 시스템에서 꼭두각시 구성을 유지하는 것이 표준 관행입니다. 따라서 항상 과거에 서버를 설정 한 방법을 되돌아보고 확인하거나 실패한 변경 사항을 롤백 할 수 있습니다. .

마지막으로, 여기에 제가 빨리 시작할 수있는 간단한 인형 데모를하는 빠른 비디오 가 있습니다.

19
Paul Ivanov

We 실제 및 가상 머신의 빌드 및 구성 자동화를 위해 CobblerPuppet 을 사용합니다.

Cobbler는 DHCP, PXE 부팅 및 킥 스타트를 함께 연결하여 배포를 수행하기 위해 시스템 프로필을 추가하고 전원 버튼을 누르는 것 이상을 수행하지 않습니다. VM의 경우 koan 명령은 (이 경우) Xen 마법을 사용하여 설치를 시작합니다. dom0에 다음을 입력합니다.

koan --system vps.fqdn --server cobbler --no-gfx

그런 다음 virsh console를 사용하여 상호 작용없이 VPS 건물을 볼 수 있습니다.

우리는 RHEL을 사용하고 디스크를 분할하고 네트워킹을 구성하고 다양한 서버 클래스에 대한 기본 패키지를 설치하도록 설정된 프로필을 가지고 있습니다. Cobbler는 Debian 및 Ubuntu 품종을 지원하지만 시도 해본 적이 없습니다. 곁에 : Cobbler의 다른 흥미로운 용도로는 memtest ISO 및 HP 펌웨어 업데이트 실행이 있습니다.

시스템이 Cobbler Puppet으로 구축되면 응용 프로그램, 시스템 데몬을 구성하고 RHN에 상자를 등록하는 등의 작업을 수행합니다. Puppet은 시스템의 구성이 정의 된 매니페스트와 일치하는지 주기적으로 확인하는 데몬으로 실행됩니다. 업데이트가 완료되었음을 알 수 있습니다. 모든 서버에. 또한 유지 보수를 위해 중단 된 상자가 라이브 서비스로 반환되기 전에 올바른 구성을 가지고 있는지 확인할 수있는 좋은 방법입니다.

꼭두각시는 정말 대단합니다. 구성의 모든 측면을 제어 할 필요는 없습니다. 모든 상자에서 구성해야하는 간단한 것을 관리하고 (sudoers는 표준 예입니다) 거기에서 가져옵니다. . Puppet 매니페스트도 버전이 지정되어 있는지 확인하십시오. 조정할 항목을 기억하지 않고도 정상 작동이 확인 된 구성으로 쉽게 롤백 할 수있는 것보다 더 좋은 것은 없습니다.

8
markdrayton

현재 제가 일하고있는 곳에서는 300 개가 넘는 Linux 서버가있는 서버 팜의 Linux 부분을 관리해야합니다. 여기에는 대부분 HP Proliants, IBM 3850s, 일부 IBM 블레이드, VMware ESX 및 내부 관리 서버용 KVM)이 포함됩니다.

구두 수선공

우리는 cobbler를 살펴 봤지만 문제는 cobbler가 매우 RHEL/Red Hat에 특화되어 있다는 것입니다. 우리는 최소한 RHEL과 SLES를 지원해야하며 우분투가 그 다음입니다.

인형

우리는 꼭두각시를 고려했지만 나중에 루비에 의존하기 때문에 그것을 반대하기로 결정했습니다. 이는 루비의 업그레이드가 잠재적으로 우리의 관리 시스템을 망칠 수 있음을 의미합니다.

열선

Hotwire는 우리가 사용하는 것이며 (내부적으로 개발되었지만 오픈 소스 임) 지난 몇 년간 그렇게 해왔습니다. 먼저 구축 될 시스템의 인벤토리를 작성합니다. 즉, 데이터 센터, 랙, 하드웨어, 운영 체제, 네트워크 등의 인벤토리를 작성하고 두 번째로 신속한 구축 및 배포를 수행합니다. 시스템이 구축되면 hotwire의 자동 인벤토리는 인벤토리를 동기화 상태로 유지하고 cfengine은 인벤토리를 유지합니다. Hotwire는 python-dmidecode 를 통해 Bios의 SMBIOS/DMI 데이터와 통신하여 서버 하드웨어에 대해 알고 있습니다.

보너스 포인트는 인벤토리와 빌드 프로세스를 하나로 결합하여 관리 할 것이 적고 라이브 인벤토리 기능이 옳지 않은 경우 알기 때문에 훌륭하다는 것입니다.

단점은 사용자 인터페이스가 여전히 다듬어 져야하고 여기 저기 버그가 있지만 개발이 여전히 뜨겁고보고 된 버그가 비교적 빠르게 수정된다는 것입니다.

cfengine

Cfengine을 사용하는 이유는 그것과 꼭두각시 외에는 아무것도 없기 때문입니다. 실제로 is 좋은 도구이지만 정책이 얼마나 좋은지에 따라 "좋은"것입니다. 위험한 정책을 설정하면 작은 실수가 많은 피해를 입힐 수 있습니다. 예를 들어, 정책에 따라 파일을 "수정"하지 않거나 대체하거나 변경하지 않습니다. 또한 대체 된 모든 파일에는 편집하는 사람이 다음에 실행될 때 대체 될 것이라는 것을 알리는 헤더가 있습니다 (시간마다 cron을 통해 실행 됨).

Cfengine에 의해 서버로 푸시 된 구성 및 모든 파일도 SCM에 보관되며 가능한 경우 커밋 후 후크를 사용하여 구문을 확인하고 실패하면 커밋이 거부됩니다. 이것은 Apache와 같은 Nice 응용 프로그램에서는 쉽지만 대부분의 엔터프라이즈 응용 프로그램에서는 쉽지 않습니다.

6
Xerxes

대상 시스템에 따라 자동 설치 :

  • Debian/Ubuntu : FAI 또는 d-i 미리 설정
  • RedHat/Fedora : 킥 스타트
  • Novell/openSuSE : AutoYaST
  • Solaris : Jumpstart
  • Windows : unattended.sourceforge.net

그 위에 구성 관리를 위해 꼭두각시를 사용하는 것이 좋습니다.

3
Michael Prokop

여기 Puppet에 대한 또 다른 투표. 모든 서버 및 애플리케이션 설치 및 구성 관리를 수행하기 위해 광범위하게 사용합니다. 200 개 이상의 노드 및 계산. Windows 지원은 분명히 개발 중이지만 어떤 상태인지 확실하지 않습니다.

우리는 여전히 초기 OS bootstrap 측면을 조사하고 있지만 위에서 언급했듯이 Cobbler는 흥미로워 보입니다. 현재 Debian/Ubuntu 미리 설정과 함께 PXE 부팅을 혼합하여 사용하고 있지만 최적은 아닙니다.

2
Mike Pountney

Puppet 으로 많은 성공을 거두었지만 많은 구성을 작성해야합니다.

2
Dave Cheney