서버 배포 자동화


28

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

지금까지 배포 한 서버는 우분투 였지만 다른 Linux OS 또는 Windows를 사용하기 시작할 수 있습니다. 지금까지 Capistrano를 살펴 보았지만 작업을 수행하는 작은 루비 프로그램 작성에 중점을 둔 것으로 보이며 전혀 지식이 없습니다.


답변:


20

꼭두각시 소리는 현재 수행하려는 작업에 적합하며, 현재 Windows를 지원하지 않는다는 경고가 있습니다.

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

꼭두각시 (Puppet)는 선언적입니다. 각 상자의 리소스를 기준으로 상자를 설명 할 수 있습니다. 따라서 원하는 경우 ssh-해당 리소스에 대한 클래스를 작성하고 클래스 내부에 FreeBSD와 Ubuntu에서 ssh가 약간 다르게 호출되는 방식에 대한 논리를 포함시킬 수 있습니다. 또한 yumRedhat 내부와 apt-get데비안 기반 배포판 및 portsBSD 에서도 사용하는 방법을 알고 있습니다 . 이제 서버 노드에는 다음과 같은 줄이 있습니다. include ssh꼭두각시가 Ubuntu, Redhat 또는 FreeBSD인지 기억하지 않아도 올바른 작업을 수행하고 SSH를 시스템에 배치합니다.

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

현재 Puppet을 사용하여 3 개의 상자 만 관리하고 있지만 이미 성과를 거두고 있습니다. 실험에서 자극 프리젠 테이션에 사용할 상자를 설정하는 데 일주일을 보낸 후 그래픽 카드 드라이버가 Ubuntu 버전 (8.04)에서 너무 오래된 것으로 나타났습니다. 최신 우분투 (9.04)를 설치해야했지만 그 후에 꼭두각시를 설치하고 실행해야했습니다. 일주일 동안 설정 한 모든 시간이 복원되었습니다.

꼭두각시에는 약간의 학습 곡선이 있지만 루비 학습을 성공적으로 피했습니다. 꼭두각시가 쓰여진 것이므로 사용하고 있다는 것을 알고 있습니다. 그러나 지금까지 예제를 수정하는 데 성공했습니다 . 위키의 문서와 레시피 . 또 다른 단점은 꼭두각시가 처음으로 작업하는 데 시간이 조금 더 걸린다는 것입니다. 단점은 모든 머신에서 변경 한 모든 것이 한 곳에 저장된다는 것입니다. 퍼펫 구성을 버전 제어 시스템에 유지하는 것이 일반적이므로 항상 되돌아보고 과거에 서버를 설정 한 방법을 확인할 수 있습니다 -또는 일부 실패한 변경 사항을 롤백하십시오.

마지막으로, 간단한 꼭두각시 데모를 수행 하는 빠른 비디오 가 있습니다.


3
자신의 서버를 관리 할 수 Digg.com 사용 꼭두각시, 몇 가지 기본적인 예는 자신의 블로그에서 찾을 수 있습니다 : blog.digg.com/?p=335 blog.digg.com/?p=562
아담 Gibbins

Fedora 관리 팀도 꼭두각시를 사용한다고 생각합니다.
Mei

9

우리가 사용하는 파이꼭두각시 빌드 모두 실제 및 가상 머신의 구성 자동화.

Cobbler는 DHCP, PXE 부팅 및 킥 스타트를 함께 연결하여 머신 프로파일을 추가하고 전원 버튼을 누르는 것 이상을 배치하지 않습니다. VM의 경우 koan 명령은 Xen 매직을 사용하여 설치를 시작 dom0합니다.

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

그런 다음 virsh console상호 작용없이 VPS 건물을 시청합니다.

우리는 RHEL을 사용하고 디스크를 분할하고 네트워킹을 구성하며 다양한 서버 클래스에 대한 기본 패키지를 설치하는 많은 프로파일을 가지고 있습니다. Cobbler는 데비안과 우분투 품종을 지원하지만 결코 시도하지 않았습니다. 제쳐두고 : Cobbler의 다른 흥미로운 용도로는 memtest ISO 및 HP 펌웨어 업데이트 실행이 있습니다.

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

꼭두각시 정말 대단합니다. 구성의 모든 측면을 제어 할 필요는 없습니다. 모든 상자에서 구성해야하는 간단한 것을 관리하는 것부터 시작 sudoers하여 (표준적인 예) 시작하십시오. 꼭두각시 매니페스트 버전도 확인하십시오. 조정 대상을 기억할 필요없이 알려진 양호한 구성으로 쉽게 롤백 할 수있는 것보다 낫지 않습니다.


6

현재 작업중인 곳에서는 서버 팜의 Linux 부분 인 300 개가 넘는 Linux 서버를 관리해야합니다. 여기에는 대부분 HP Proliants와 IBM 3850, 일부 IBM 블레이드, VMware ESX 및 내부 관리 서버용 KVM이 포함됩니다.

구두 수선공

우리는 cobbler를 보았지만 cobbler는 매우 RHEL / Red Hat과 관련이 있다는 문제가있었습니다. 우리는 최소한 RHEL과 SLES를 지원해야하며 우분투는 다음 단계입니다.

인형

우리는 꼭두각시를 고려했지만 루비에 따라 루비를 업그레이드 할 경우 관리 시스템이 손상 될 수 있음을 나중에 결정했습니다.

열선

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

보너스 포인트는 인벤토리와 빌드 프로세스를 하나로 결합하여 관리하는 것이 적으며, 실제 인벤토리 기능이 옳지 않다는 것을 알기 때문에 실재 기능입니다.

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

cfengine

우리는 cfengine을 사용합니다. 꼭두각시 외에 다른 것은 없기 때문입니다. 실제로 좋은 도구이지만 정책이 얼마나 좋은지에 따라 "좋은"것입니다. 위험한 정책을 설정하면 작은 실수로 인해 많은 피해가 발생할 수 있습니다. 예를 들어, 정책에 따라 파일을 "수정"하지 않고 파일을 바꾸거나 바꾸지 않습니다. 또한 교체 된 모든 파일에는 편집하는 사람이 다음에 실행될 때 교체 될 것임을 알 수있는 헤더가 있습니다 (cron을 통해 매시간 실행됩니다).

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


루비에 의존하기 때문에 꼭두각시를 반대하기로 결정 했습니까? 이를 기반으로 libc 또는 커널 업그레이드로 인해 중단 될 수 있으므로 거의 모든 것에 대해 결정할 수 있습니다.
Cristian Ciupitu

2
요점을 밝히지 만 결국에는 다음 업그레이드에서 "걱정"하려는 패키지 수를 타협합니다. 커널 / glibc 업그레이드가 잘못되면 일반적으로 OS의 가장 기본적인 구성 요소 인 것처럼 거의 즉시 알아낼 것으로 예상되지만, 루비가 약간 다르게 나오면 실제로 눈치 채지 못할 것입니다. 해당 버전에서 300 대의 서버가 이미 업그레이드되어 실행 중이며 이제 Puppet이 피해자입니다. 그러나 다시, 나는 돌로 아무것도 조각하지 않습니다. 이것은 문제에 대한 나의 선호입니다.
Xerxes 2016 년


3

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

  • 데비안 / 우분투 : FAI 또는 사전 미리 설정
  • 레드햇 / 페도라 : 킥 스타트
  • Novell / openSuSE : AutoYaST
  • 솔라리스 : Jumpstart
  • Windows : unattended.sourceforge.net

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



2

꼭두각시에 대한 또 다른 투표는 여기에 있습니다. 모든 서버 및 응용 프로그램 설치 및 구성 관리를 수행하기 위해 광범위하게 사용합니다. 200 개 이상의 노드 및 카운팅. 확실하지는 않지만 Windows 지원은 분명히 개발 중입니다.

우리는 여전히 초기 OS 부트 스트랩 측면을 검토하고 있지만 위에서 언급했듯이 Cobbler는 흥미로워 보입니다. 우리는 현재 데비안 / 우분투 사전 설정과 혼합 된 PXE 부팅을 사용하고 있지만 거의 최적이 아닙니다.


마이크,이 질문에 꼭두각시 태그를 추가 할 수 있다고 생각하십니까? 나는 그것을 할 것이지만, 필요한 담당자가 없다
Paul Ivanov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.