저는 3개의 서버를 보유하고 있으며 이 서버를 사용하는 여러 팀이 있습니다. 그들은 다른 설정을 가진 다른 배포판(Ubuntu, Debian...)을 사용하고 싶어합니다. 작업상의 이유로 가상 머신을 사용할 수 없습니다. 각 컴퓨터에 동일한 설정을 적용하여 각 시스템을 사용할 수 있는 방법이 있습니까? 따라서 Server1의 Ubuntu에 무언가를 설치하고 다음날 Server2의 Ubuntu를 사용하면 모든 것이 그대로 유지됩니다.
네트워크 부팅은 좋은 옵션인 것 같지만 변경 사항을 저장하는 방법을 모르겠습니다(가능한 경우). 각 서버에 각 시스템을 설치할 수 있지만 어떻게 동기화를 유지합니까?
답변1
당신이하고 싶은 일에 대해 각 "기능 단위"에 대한 도커 컨테이너가 필요한 것처럼 들립니다. "오늘 CLI에서 애플리케이션을 설치했습니다." 문제는 해결되지 않습니다. 이는 "사용 가능한 모든 하드웨어에 배포할 수 있도록 모든 상자가 필요하다"는 문제를 실제로 해결합니다.
수동으로 설치된 앱을 공유 폴더에 저장할 수 있지만 이는 해당 앱이 모놀리식 설치이거나 앱별 컨테이너여야 함을 의미합니다. AWS를 사용하는 경우 이 목적으로 AMI를 사용할 수도 있습니다.
즉, 하드웨어는 중요하지 않지만 모든 것을 "올바른 방식"으로 설정하려면 초기 비용이 발생합니다. 프로젝트가 복잡할수록 단일 작업 컨테이너를 확보하는 것도 더욱 복잡해지고 상호 의존도 더욱 복잡해집니다.
예를 들어,이것장난감 프로젝트는 일을 수행하는 좋은 방법입니다. 따라서 nginx 사용자는 Alpine을 좋아하지만 정신없는 사용자는 Debian을 좋아하고 Postgres 사용자는 우분투를 좋아한다면 컨테이너는 서로 다른 템플릿에서 생성되며 언제든지 한 머신에서 다른 머신으로 이동할 수 있습니다.
다시 말하지만 이는 처음부터 "배포 가능한 이미지"로 시작한다는 의미입니다. 시간이 지남에 따라 배포 가능한 이미지에 필요한 것이 무엇인지 결정하는 것이 점점 더 어려워집니다.