•  원더라이트

알파인

파인, OSTree 기반 알파인 리눅스

무엇을 선택 OS 서버에서 실행되는 것은 편리함과 친숙함의 문제입니다. 편리함은 가능한 한 문제를 덜 주는 것을 원한다는 의미이고, 친숙함은 선호하는 것을 의미합니다. ~ 아니다 필요하지 않은 경우 추가 정보를 배우십시오.

내 서버는 애완 동물그래서 가끔씩 몇 가지 명령을 수동으로 실행하는 것이 좋으며 완전한 자동화가 필요하지 않습니다.

시도한 후 코어OS 1년 동안 나는 내 자신의 단순화된 것으로 전환했습니다. 배포판 알파인과 오스트리.

목표

이 알파인 버전은 다음에서 힌트를 얻습니다. 무개 화차 그리고 프로젝트 원자 업데이트가 원자적으로 발생하는 읽기 전용 루트 파일 시스템으로 설치되어야 합니다. 즉, 업데이트가 성공하거나 시스템이 이전 상태로 다시 스왑됩니다. 이것이 가능하려면 시스템이 항상 최소한 두 개의 스냅샷 출시된 파일 시스템 버전의 스토리지에서 사용할 수 있습니다.

대상

시스템은 어떤 환경에서 실행됩니까? 나는 목표로 삼았다 OVZ 및 [KVM], 그러나 일반적으로 다음과 같이 말할 수 있습니다. 컨테이너 그리고 가상 머신 가장 큰 차이점은 컨테이너가 자체 커널을 실행하지 않는다는 것입니다. 특히 부팅 프로세스가 없으며 컨테이너에 직접 호출합니다. 초기화 시스템(예를 들어Dockerfile 에 의해 정의될 것입니다.CMD 또는ENTRYPOINT 명령문), 컨테이너를 계속 실행하는 프로세스 트리를 관리하는 역할을 합니다(일반 세션과 마찬가지로 init 프로세스가 죽으면 컨테이너가 종료됨). 또한 컨테이너는 시스템 노브를 구성할 수 없으며 기능에 대한 추가 제한이 있을 수 있습니다.

빌드 프로세스 이등분

이미지는 어떻게 만들어지나요?

종속성

NSprepare.sh 스크립트는 종속성을 처리하며 대부분은 다음과 같은 일반적인 cli 도구를 제공하는 패키지입니다.coreutils, util-linux, binutils , 다음과 같은 블록 장치와 함께 작동하는 유틸리티blkid, sfdisk, multipath-tools 및 파일 시스템xfsprogs 그리고e2fsprogs . NSsquashfs-tools 패키지는 빌드된 루트 파일 시스템을 압축하기 위해 마지막에 사용됩니다. NSglib alpine이 기반으로 하기 때문에 호환성 패키지도 기본적으로 설치됩니다.musl, 호환성 패키지는 에 대해 빌드된 일부 라이브러리를 제공하여 작동합니다.

나무

VM과 컨테이너의 파일 트리는 각각make.sh 그리고make_ovz.sh . 단계에 대한 간략한 설명입니다.

컨테이너의 경우 순서는 동일하지만 구성이 변경됩니다. 부트로더 ostree는 환경을 확인하는 데 문제가 있습니다. 일부를 적용해야 합니다. 해결 방법 일반적으로 처리되는 일부 장치를 설정합니다. initramfs 단계. 이것이 어떻게 OVZ 또는 LXC 템플릿이 구성됩니다.

포장

ostree 커밋된 파일 트리가 있으면build.sh 또는build-update.sh 배포될 아티팩트 생성을 처리합니다. 스크립트의 차이점은 업데이트 버전이 이전 ostree 저장소에서 시작되고 또한 실행 중인 시스템이 업그레이드를 수행하기 위해 ostree 인스턴스에 적용할 수 있는 델타 아티팩트를 생성합니다. 이것은 빌드 단계에 대한 간략한 설명입니다.

파티션 구성은 fdisk와 함께 적용됩니다.layout.cfg 파티션 크기를 정의하는 파일에 rootfs(~430M ), 부팅 파티션(~40M ) 및 스왑 파티션(~40M ). 루프 장치 위에 이전 빌드를 마운트하는 것을 건너뛰고 이전(추출된) ostree 저장소 위에 새 ostree 커밋을 가져오기만 하면 되는 컨테이너를 사용합니다.

커스터마이징

이 이미지에 무엇을 번들로 포함하고 있습니까(설치된 패키지 제외)?

예전과 더 이상 없는 것

설치

이미지를 설치하려면 가상 머신의 경우 호스팅 제공업체에 이미지를 업로드하고 VNC에서 설치할 수 있지만 일반적으로 기존 설치를 하이재킹합니다. 일반적으로 debian-8 또는 ubuntu-14를 사용하는 Linux 배포판은 항상 사용 가능한 것으로 확인되었기 때문에 다른 배포판을 테스트하지 않았습니다. 설정 단계는 다음과 같습니다.

결론

내가 만든 소나무 5 years from time of writing and I am still using it, and I see no reasons to switch to anything else. Alpine as a linux distro is great, simple, and I have never experienced breakage. I can easily deploy on NATed 매우 낮은 리소스를 제공하는 경향이 있는 서버, 실제로는64M 필요한 모든 기능을 갖추고 있습니다.

[1]루트 파일 시스템

게시물 태그: