Skip to Content
Building Os빌드 기능

빌드 기능

기능은 명명된 빌드 모듈입니다. 해당 레지스트리 항목은 하나 이상의 배포 제품군에 대한 패키지를 선언할 수 있으며 빌드 후크, 별칭, 기능 메타데이터 및 게스트 어설션도 포함할 수 있습니다.

기능을 추가하면 의도가 표현됩니다. 그 자체로는 모든 패키지가 사용 가능하고 모든 후크가 실행되었거나 결과 동작이 대상 이미지에서 작동함을 증명하지 않습니다. 레시피 검증, 빌드 완료, 게스트 검증은 별도의 게이트입니다.

현재 기능 세트 찾기

배포된 OpenFactory 릴리스에서 기능 선택기 또는 기능 카탈로그 API를 사용합니다. 해당 출력은 실행 중인 버전에 대해 신뢰할 수 있습니다. 정적 목록은 빠르게 오래되고 일부 레지스트리 항목은 내부 고정 장치 또는 불완전한 통합을 지원하기 때문에 숨겨집니다.

기능을 선택하기 전에 다음을 확인하세요.

  • 귀하의 계정에 표시되고 활성화되어 있는지 여부
  • 레시피의 배포판에 대한 패키지를 선언하는지 여부
  • 외부 소스가 고정되어 검색 가능한지 여부
  • 필요한 동작을 증명하는 주장이 있는지 여부 그리고
  • 요청한 다른 모듈과 충돌하는지 여부.

대표 카테고리

레지스트리에는 현재 다음과 같은 범주의 모듈이 포함되어 있습니다.

카테고리요구할 증거
데스크탑desktop-kde, desktop-gnome-minimal, krita, kdenlive세션 유형, 설치된 패키지, 실행기 동작 및 실제 데스크톱 연기 테스트
명령줄 및 개발git, curl, python, nodejs, rust패키지/버전 인벤토리 및 실행 가능한 연기 테스트
인프라nginx, postgresql, redis, docker, ansible서비스 구성, 활성화/실행 상태, 포트 및 애플리케이션 수준 상태
보안firewall, audit-logging, security-hardening, apparmor생성된 정책, 활성 런타임 상태, 부정적인 테스트 및 문서화된 예외
규정 준수 지향cis-benchmarks, gxp, disa-stig, nist-800-53정확한 벤치마크/컨트롤 소스, 적용 가능성, 컨트롤별 결과 및 인간 성향
AI 도구ollama, alpaca, aider, codex-cli고정된 소스/패키지 출처, 모델 다운로드 경계, 출시 테스트 및 리소스 요구 사항

예제는 호환성 매트릭스가 아닙니다. 특정 배포 구현이 부분적으로 유지되는 동안 기능 이름이 존재할 수 있습니다.

기능, 패키지, 서비스가 다릅니다

  • os.features은 등록된 빌드 모듈을 선택합니다.
  • os.packages은 기본 패키지 관리자에게 특정 패키지를 요청합니다.
  • os.services은 명명된 활성화 및 구성 의도를 제공합니다.

예를 들어:

{ "os": { "features": ["ssh", "firewall"], "packages": ["curl", "jq"], "services": [ { "name": "ssh", "enabled": true, "config": { "port": 22, "disable_password_auth": true } } ] } }

유효한 서비스 구성에는 생성기가 사용하지 않는 키가 계속 포함될 수 있습니다. 정규화된 레시피를 검사하고 생성된 게스트를 테스트합니다.

보안 및 규정 준수 라벨

security-hardening은 일반 강화 기준을 설치하고 구성합니다. CIS 프로파일과 동의어가 아닙니다. 레시피의 hardening_level은 대상별 생성기에 의해 해석되는 구성 라벨입니다. 이는 CIS 레벨 1 또는 레벨 2에 대한 인증 또는 범용 매핑이 아닙니다.

cis-benchmarks 기능에는 보다 구체적인 Ubuntu 24.04 레벨 1 수정 경로가 있습니다. 다른 기지는 ​​동일한 역할을 받지 않습니다. 정확한 경계는 CIS 벤치마크 증거을 참조하세요.

마찬가지로 GxP, HIPAA, SOC 2, PCI DSS, NIST 또는 DISA라는 이름의 기능을 활성화해도 조직 규정 준수가 설정되지는 않습니다. 별도로 관리되는 평가에 증거를 제공하는 패키지, 구성 및 테스트를 추가할 수 있습니다.

기능을 안전하게 결합하기

  1. 요청된 동작을 표현하는 가장 작은 세트부터 시작합니다.
  2. 레시피를 검증하고 삭제되거나 추론된 필드에 대한 정규화된 출력을 검사합니다.
  3. 확장된 패키지와 후크 계획을 검토합니다.
  4. 한 번 빌드하고 내구성 있는 빌드 ID를 따릅니다.
  5. 부팅된 게스트에서 기능별 어설션을 실행합니다.
  6. 실패와 의도적인 예외를 명시적으로 기록합니다.
  7. 현재 기준선을 이해한 후에만 다른 기능을 추가하십시오.

표준 JSON 형태는 레시피 스키마을 참조하세요.