답변:
데비안 사전 시드 (pre-seeding)를 혼합하여 사용하는 것이 좋습니다. 여기서 설치 프로그램은 모든 질문에 답할 텍스트 파일과 Puppet을 제공합니다.
FAI 대신 미리 설정을 사용하는 이유는 먼저 이미지를 설정하지 않고 최신 상태로 유지해야하기 때문입니다. 모든 작업을 수동으로 수행했을 때의 설치와 매우 유사한 설치로 끝납니다. 새 릴리스를 설치할 때 새 이미지를 다시 작성하지 않고 구성 파일을 변경 사항으로 업데이트해야합니다.
구성 관리 도구는 동일한 역할을 수행하는 여러 서버가 있고 웹 서버 클러스터와 같이 동일한 서버를 원하는 경우에 특히 유용합니다. 그러나 모든 서버의 기본 설치를 구성하는 데 유용 할 수도 있습니다. ntpd 및 MTA와 같은 모든 서버에 특정 패키지를 설치하려고합니다. 모든 서버에서 구성 파일을 변경하려고합니다. 또 다른 이점은 매니페스트를 서브 버전과 같은 형태로 유지하고 서버에서 변경된 사항과 서버를 만든 사람과 그 이유를 기록 할 수 있다는 것입니다. 서버 관리가 실패한 경우 구성 관리를 사용하면 생명을 구할 수 있으므로 신속하게 재 구축해야합니다. FAI 또는 미리 설정을 사용하여 OS를 설치하고, 꼭두각시를 설치 한 다음 이전과 동일하게 다시 빌드하십시오. 분명히 데이터 백업을 유지해야합니다.
구성 관리는이를 사용하여 변경을 수행하고 초기 비용이 설정되도록하기 위해 헌신이 필요하지만, 일단 설정이 완료되면 후회하지 않을 것입니다.
꼭두각시는 앞서 언급 한 두 가지 도구 중 가장 현대적인 도구입니다. 나는 누군가에게 그것을 정말로 추천합니다. 구성은 선언적 언어이며 더 높은 수준의 구성을 쉽게 구축 할 수 있습니다. 주변에는 매우 큰 커뮤니티가 있으며 메일 링리스트 나 IRC 채널에 도움을 줄 사람들이 항상 있습니다.
2-3 박스 이상의 환경과 특정 역할을 수행하는 '템플릿'또는 서버 개념이있는 환경에는 CFengine을 권장합니다.
왜? 간단히 말해 실수를 줄이면 환경의 모든 곳에서 파일 / 디렉토리 권한이 올바른지 확인 하고 더 많은 서버를 출시 할 때이 도구는 절대적으로 모든 것을 처리하고 실수를하지 않습니다.
숙련 된 시스템 관리자와 달리 이미 문제가 발생했을 때 12 시간이 지나면 웹 서버를 배포합니다 .... / etc / random / location으로 이동해야하는 불쾌한 작은 구성 파일을 기억할 것입니다 그렇지 않으면 / foo / bar 그렇지 않으면 애플리케이션이 청구서 고객과 같은 중요한 작업을 자동으로 수행하지 못합니까? :)
CFengine과 같은 도구는 환경 전체의 보안 업데이트를 수행하는 좋은 방법입니다. Nagios 구성 (NRPE)을 모든 상자에 떨어 뜨리는 것도 문제가됩니다. 다섯 상자 5 개 처리하든 백 상자는 것 은 cfengine과 시간을 절약 할 수 있습니다.
내 환경이 조금 더 크다는 점은 주목할 가치가 있지만, 참고 사항보다 작은 환경에 CFengine을 배포 했으므로 권장 사항입니다!
아마도 다음 질문은 CFengine vs Puppet입니까? 그것은 더 어려운 결정이며, 특히 오류 로깅과 관련하여 Puppet의 미성숙으로 인해 CFengine을 항상 사용했습니다. 요즘에는 확실하지 않습니다. 다시 꼭두각시 내 특정 문제에 보면, 그들은 고통스럽게 아직도 내가 서버를 진단 3 시간 소요되는 시간을 기억 관련 SSL 인증서했다 <-> 약간 무거운 RTFM과 RTFS와 irc.freenode.net/#puppet에서 클라이언트 연결 문제는 에서만 찾을 수 오류는 기록되지 않았으며 Luke는 "아, 정말 고치기 어렵다"고 말하지 않았습니다. :(
cfengine 및 꼭두각시 외에 chef도 있습니다. 항상 예상치 못한 방향으로 커질 것이므로 이러한 도구 중 하나를 사용하는 것이 좋습니다. 이것은 중앙 위치에서 물건을 관리하는 데 도움이됩니다.
인식해야 할 중요한 점은 모든 것을 얻을 수는 없지만 적어도 90 %를 얻을 수 있다면 시작이라는 것입니다. 게다가 재미 있고 장기적으로 인생을 더 편하게 해줄 것입니다. 마지막으로 앞으로 나아갈 수있는 좋은 기술입니다.
나는 5 년 이후 cfengine을 사용하여 데비안을 설치하고 있습니다 (오늘은 woody에서 lenny까지). 에칭으로 커스텀 debian-installer를 빌드합니다. Preseed 덕분에 "whats the hostname"이라는 단일 질문이 나타납니다. 이 cfengine은 전체 서버 (dnssec, samba, ntpd, 기본 (Samba) 사용자 및 비밀번호를 사용하는 dns + dhcp, ssh, openvpn, apache vHosts, LVM에서 rsnapshot을 사용한 백업, 사용자 정의 webminmodule 등)를 구성합니다.
서버를 하나만 설치하더라도 툴박스에서 다음과 같이 cfengine-scripts를 사용합니다.
control:
Repository = ( $(CFREPO) )
IfElapsed = ( 0 )
Syslog = ( on )
actionsequence = ( editfiles shellcommands )
CPTYPE = ( sum )
editfiles:
{ /etc/sysctl.conf
# don't spam on tty:
BeginGroupIfNoSuchLine "kernel.printk.*=.*2 4 1 7"
DeleteLinesMatching "^kernel.printk.*=.*"
Append "kernel/printk=2 4 1 7"
EndGroup
# no E(xplicit?) C(ongestion) N(otification)
BeginGroupIfNoSuchLine "net.ipv4.tcp_ecn.*=.*0"
DeleteLinesMatching "^net.ipv4.tcp_ecn.*=.*"
Append "net/ipv4/tcp_ecn=0"
EndGroup
BeginGroupIfNoSuchLine "net.ipv4.ip_forward.*=.*1"
DeleteLinesMatching "^net.ipv4.ip_forward.*=.*"
Append "net/ipv4/ip_forward=1"
EndGroup
DefineClasses "configchange_sysctl"
}
shellcommands:
configchange_sysctl::
"/sbin/sysctl -p /etc/sysctl.conf"
# vim: set ts=2:
cf2- 스크립트는 사람이 읽을 수 있기 때문에 cfengine을 좋아합니다.
따라서 자동 구성 관리 도구로 작업 할 가치가 있습니다.
/ 토르스텐
작은 사이트에서도 가치가 있습니다. 성장함에 따라 일관성이 중요합니다. 그리고 당신은 당신의 위치가 성장할 것이라는 것을 알고 있습니다. 작은 상태에서 시작하는 것이 가장 좋습니다. Cfengine은 대단합니다. 특히, 모든 패키지 관리자를 현장에서 처리 할 수있는 버전 3과 실제 가볍고 안전하며 "정상 작동"합니다. 꼭두각시는 방금 주장한 것을 전달하지 않았습니다. 요리사를 시도하지 않았습니다.
cfengine의 장점은 초경량이지만 실제로는 더 많은 기능이 있다는 것입니다. 보안은 꼭두각시가 사용하는 웹 인증서가 아니라 ssh와 같습니다. cfengine에 대해 상사에게 이야기했을 때 그는 공상 과학이라고 생각했습니다. :) 미래를 찾고 있다면 Marc Burgess의 연구 논문을 읽어보십시오. 멋진 것.
나는 여기의 모든 것에 동의합니다. 규모가 크지 않으면 작동하는 인프라를 배우고 설정하기 시작해야합니다. 그때 당신은 성장할 때 준비됩니다.
실행하려는 것에 따라 FAI, cfengine 및 데비안 / 우분투 사전 시드에 갈 것입니다. FAI는 다양한 도구로 작업 할 수 있으므로 데비안과 같은 배포판을 시작하는 것이 좋습니다. FAI (및 cfengine) 클래스 제어 구성을 사용하면 설치를 작은 모듈로 쉽게 나눌 수 있으며 각 모듈에 사용할 모듈을 선택할 수 있습니다. 이런 식으로, 많은 다른 기계가 있어도 유용합니다. 이 스크립트를 사용하여 설치를 문서화하므로 실제로 더 유용합니다. 그리고 새로운 기계에 설치할 때, 아무것도 잊지 않을 것입니다.
예, 라이브 설치에서 변경 사항을 배포하기 전에 테스트 할 컴퓨터가 있어야합니다. 그러나 이와 같은 구성 스크립트를 사용하면 실제 설치 단계를 잊지 않아도됩니다.