콘텐츠가 압축되고 암호화되어 설치 가능한 패키지 형식을 만드는 것은 내 책임입니다.
나는 이것을 cryptsetup 원시 장치에 내장된 squashfs로 모델링했습니다.
아아, cryptsetup을 설정하려면 루트 액세스가 필요하기 때문에 jenkins와 같은 빌드 서버에서 이러한 패키지를 빌드할 수 없습니다. Docker 컨테이너 내부에서 동일한 작업을 수행하는 경우에도 Docker가 장치 매퍼에 투명하지 않기 때문에 작동하지 않습니다.
따라서 다음과 같은 옵션이 있습니다.
- 빌드 서버에서 squashfs를 생성하고 "수동으로" cryptsetup 레이어를 완료하세요.
- 어떻게 든 커널 개입없이 cryptsetup 암호화를 수행합니다.
1.은 프로세스에 또 다른 단계를 추가하므로 2와 같은 작업을 선호합니다.
더 쉽게 이해하려면 다음을 수행하세요.
현재 나는 다음과 같은 일을하고 있습니다
mksquashfs <sources> tempfile -noappend
<determine the size of tempfile>
<create "outfile" file with said size>
cryptsetup open -q -d keyfile outfile <my-dm-device>
mksquashfs <sources> /dev/mapper/<my-dm-device> -noappend
cryptsetup close <my-dm-device>
나는 그것을 단순화하고 싶다
mksquashfs <sources> tempfile -noappend
user_space_crypt_create -q -d keyfile tempfile outfile
여기서 user_space_crypt_create는 암호화되지 않은 임시 파일을 (원시) 암호화된 출력 파일로 변환합니다. 이 파일은 나중에 cryptsetup을 통해 대상 시스템에 설치할 수 있습니다.
그런 것이 존재하나요?