사용 사례별로 운영 체제 및 패키지를 격리하는 모범 사례

사용 사례별로 운영 체제 및 패키지를 격리하는 모범 사례

다음 설정을 원합니다(Ubuntu, CentOS, 그러나 최신 배포판을 사용할 의향이 있음)

  • OS는 자체 포함되어 있습니다(OS는 OS이며, 하나의 애플리케이션만 사용하는 OS+DB+Apache+etc+수백 개의 라이브러리의 혼란이 아닙니다).
  • 사용 사례 A에는 파일이 완전히 분리되어 있습니다(예: IntelliJ 및 기타 패키지가 /opt에 설치됨)
  • 사용 사례 B에는 파일이 완전히 분리되어 있습니다(예: /opt의 데이터베이스 서버 및 지원 패키지).
  • 사용 사례 C, D,...

아이디어는

  • 다른 모든 것에 부작용 없이 OS 버전을 변경/업그레이드할 수 있습니다.
  • 응용 프로그램은 /opt에 설치되며 운영 체제에 부작용이 없습니다. 예를 들어 /opt에서 스크립트를 실행하여 PATH 및 기타 설정을 조정합니다.
  • (구체적으로) 케이스 A 파일을 /opt/work에 마운트하고 Java 작업을 실행할 수 있습니다.
  • (구체적으로) 사례 B 파일을 /opt/work에 마운트하고 SQL 작업을 실행할 수 있습니다.

apt/yum은 실제로 OS와 함께 설치되어서는 안되는 파일로 OS 설치를 망친다는 점에 유의하십시오(예: 다른 버전의 라이브러리를 사용해야 하기 때문에). 또한 /etc의 파일이 변경됩니다.

스냅과 같은 솔루션은 패키지 수준에서 작동하므로 PATH가 상당히 커지고 파일 조회 및 시작 시간이 더 오래 걸립니다. 더욱이 스냅 패키지는 알 수 없는 소스/패키저에서 나오는 경우가 많으며 품질과 보안이 의심스럽습니다(PPA는 보안의 종말입니다). 아이디어는 좋습니다(각 사용 사례에 대해 별도의 경로가 있고 ${BASE_PATH}/{bin,lib,etc}가 있음).

전반적인 목표는 다음과 같습니다.

  • 운영 체제에 대한 완전한 제어(보안, 감사, 자동 업그레이드 및 사람 개입 없는 버전 제어)
  • 개발 환경에 대한 전체 제어(버전 관리, 업그레이드, 오프라인 패키지 설치 등)
  • 그러나 Wayland와 GUI 및 기타 기본 가속 기능에 대한 전체 액세스가 가능합니다.

Docker에서 애플리케이션을 실행할 수 있다는 것을 알고 있지만 GUI에 액세스하려면 루트가 필요하므로 마음에 들지 않습니다. 저는 뿌리 없는 X에 대한 Podman에 대한 경험이 많지 않습니다. VM을 시작할 수도 있지만 이를 위해서는 적절한 지원을 제공하는 프로세서가 필요합니다. 예를 들어 대부분의 EC2 인스턴스는 VM 내에서 VM 실행을 지원하지 않습니다. 그러나 이 문제는 EC2에만 국한되지 않습니다.

답변1

이러한 사용 패턴을 염두에 두고 설계된 배포판을 사용하는 것이 좋습니다.실버 블루 페도라 모자. 기본 운영 체제를 읽기 전용 시스템으로 유지하고, 필요한 경우 "일괄" 업그레이드하고, 샌드박스 환경에서 모든 서비스와 애플리케이션을 실행할 수 있습니다(그러나 디스플레이 서버에 대한 전체 액세스 권한 포함).

답변2

CentOS 또는 Fedora - podman을 설치하겠습니다.

sudo yum -y install podman

https://podman.io/getting-started/

보드맨이란? Podman은 Linux 시스템에서 OCI 컨테이너를 개발, 관리 및 실행하기 위한 데몬 없는 컨테이너 엔진입니다. 컨테이너는 루트 또는 루트 없는 모드로 실행될 수 있습니다. 간단히 말하면 별칭 docker=podman입니다. 자세한 내용은 여기를 참조하세요.

https://podman.io/

관련 정보