저는 주로 Debian 기반의 다양한 Linux 배포판을 사용합니다(커널/셸 또는 내부 유틸리티(배포판과 함께 제공되는 유틸리티)는 변경하지 않습니다). 일반적으로 이러한 시스템에는 Apache, MySQL 및 PHP가 설치됩니다. 이 작업을 수행하지 않습니다) 아무것도 변경하지 않습니다.
나는 어떤 시스템에서도 커널 업그레이드를 수행한 적이 없습니다. 그런 필요성이 있거나 이를 요구하는 로컬 이메일을 받은 기억이 없기 때문입니다.
저는 구성 관리(CM) 도구(예: Ansible)가 오케스트레이션, 배포에 사용된다는 것을 알고 있으며 운영 체제 계층 위의 모든 것(물론 커널 포함)을 자동화할 수도 있지만 흥미롭게도 Ansible을 사용하여 "더 깊이 살펴보는" 것이 가능합니다. ? 커널에 추가하고 이를 사용하여 커널 업그레이드를 자동화하시겠습니까?
이것이 본질적으로 기본 시스템(배포판 자체, 커널, 셸 및 내부 유틸리티가 전혀 변경되지 않은 시스템)에서 모범 사례라고 생각한다면 공유해 주세요.
답변1
대부분의 최신 Linux 배포판의 경우 커널은 다른 소프트웨어/라이브러리와 마찬가지로 패키지로 배포됩니다. 따라서 Ansible을 예로 사용하면 다음과 같은 작업을 수행할 수 있습니다.
- name: Ensure that latest kernel is installed
apt:
name: linux-image-amd64
state: latest
update_cache: yes
notify: reboot_server # You would need a corresponding handler that reboots the system
이렇게 하면 게임을 실행할 때마다 최신 커널 패키지가 설치됩니다.
그러나 이 커널은 다음과 같은 점에서 대부분의 다른 패키지와 다릅니다.
- 여러 버전을 동시에 설치할 수 있으므로 이전 버전 제거를 관리해야 합니다. 다음과 같은 이유로 이 작업을 반드시 자동으로 수행할 필요는 없습니다.
- 새로 설치된 커널을 활성화하려면 시스템을 재부팅해야 하므로 이를 비즈니스 프로세스 POV에서 기술적으로 관리해야 합니다. 이는 완전히 위험이 없는 작업은 아니므로 시스템 아키텍처의 특성에 따라 다르며 일반적으로 단순 자동화에 적합한 작업으로 간주되지 않습니다.
재부팅하지 않고 새로 설치된 커널을 활성화하는 방법이 있지만 여전히 주류는 아닙니다.
커널 업데이트를 해야 하는지에 대해서는 일반적으로 그렇습니다. 오래된 소프트웨어로 인해 발생하는 심각한 보안 오류 목록이 많기 때문에(그리고 중요한 오류는 빙산의 일각에 불과할 수 있음) 모든 소프트웨어를 최신 상태로 유지해야 합니다. 최근 Meltdown 및 Spectre 취약점은 커널이 특별한 것이 아니며 다른 소프트웨어 패키지와 마찬가지로 최신 상태로 유지되어야 함을 강조합니다.
효과적인 패치 적용 전략을 유지하려면 이 프로세스 중에 발생할 수 있는 오류와 그렇지 않은 경우 발생할 수 있는 오류 간의 균형을 고려하여 신중하게 고려해야 합니다. 자동화는 확실히 도움이 될 수 있지만 모든 환경이 다르기 때문에 요구 사항을 확인하여 자신의 상황에 얼마나 잘 맞는지 평가해야 합니다.
어느 쪽이든, 다음과 같이 말하면:
(배포판 자체 시스템 - 커널, 셸 및 내부 유틸리티는 전혀 변경되지 않았습니다.)
당신이 말하는 것은 일단 설치하면 이러한 요소를 다시 방문하거나 패치/업데이트/업그레이드할 수 없으므로 시스템이 손상될 위험이 크게 증가한다는 것입니다.
답변2
예, OS 커널은 펌웨어(BIOS 또는 부트로더 등)가 아니라 소프트웨어이므로 셸에서 변경할 수 있으며 CM은 특정 방식(예: Ansible의 YAML 언어)으로 셸을 구현하여 이를 변경할 수 있습니다.