구성의 보편적인 마이그레이션을 처리할 수 있는 도구가 있습니까? 예를 들어 httpd, postfix, MySQL, 사용자 및 그룹 데이터가 있는 경우 각 서비스의 구성 데이터를 추출하여 다른 시스템에 적용할 수 있는 도구가 있습니까?
일반적으로 모든 서비스에 대해 이를 처리하는 도구(또는 전략)가 있습니까?
답변1
이 문제에 대한 대중적이고 널리 받아들여지는 해결책은 구성 관리 시스템을 사용하는 것입니다. 몇 가지 예는 다음과 같습니다인형,요리사, 그리고소금 더미.
이러한 시스템을 사용하면 서버(또는 경우에 따라 애플리케이션 스택)의 모습을 정확하게 정의할 수 있습니다. 이러한 도구를 사용하면 구성을 포함하여 서버의 상태를 정의할 수 있습니다.
다음은 Puppet과 모듈을 사용하는 매우 기본적인 Apache 구성의 예입니다 puppetlabs/apache
.
class { 'apache': }
apache::vhost { 'first.example.com':
port => '80',
docroot => '/var/www/first',
}
이 간단한 퍼펫 코드는 다음을 보장합니다.
- Apache가 서버에 설치되어 있습니다.
- 웹 서버가 실행 중이며 포트 80에서 수신 대기 중입니다.
- 문서 루트가 있는 가상 호스트를 포함합니다.
/var/www/first
그런 다음 이 매니페스트를 클러스터의 여러 서버에 적용할 수 있습니다. 구성 파일을 수동으로 복사하는 대신 이러한 유형의 구성을 사용하는 데는 여러 가지 이유가 있습니다. 코드를 처리하는 것과 거의 동일한 방식으로 서버 구성 및 인프라를 처리합니다.
- 이러한 시스템의 구성은 일반적으로 버전 제어에 저장됩니다. 이를 통해 변경 사항, 롤백 등을 쉽게 검토할 수 있습니다.
- 서버 상태가 단위 테스트 및 승인 테스트 준비가 되었습니다.
- 공유 모듈은 코드베이스처럼 작동하므로 처음부터 다시 만들 필요가 없습니다.
- 귀하의 서버는 반복 가능하고 보다 안정적인 방식으로 구성됩니다.
많은 사람들은 이러한 시스템을 사용하는 것이데브옵스이동하다.