웹사이트 검색

CHEF를 통한 자동화 및 구성 관리란 무엇입니까 – 1부


간단한 시나리오를 가정해 보겠습니다. 모든 서버에서 'tecmint' 사용자를 생성해야 하는 10개의 Redhat 서버가 있습니다. 직접적인 접근 방식은 각 서버에 로그인하고 useradd 명령을 사용하여 사용자를 생성해야 한다는 것입니다. 서버가 100대, 1000대일 경우 모든 서버에 하나씩 로그인하는 것은 사실상 불가능합니다.

여기서 이런 경우 가장 먼저 떠오르는 것은 스크립트를 작성하고 스크립트가 서버에서 실행되도록 하는 것인데, 이는 검증된 접근 방식입니다. 스크립팅에는 그 자체의 단점이 있습니다. 조직에서 널리 사용되지만 스크립트 소유자가 조직을 떠나면 유지 관리가 어렵습니다.

이 스크립트는 이기종 환경에서는 작동하지 않습니다. 스크립트는 간단한 작업 등을 위해 긴 코드를 작성해야 하는 작업을 수행하기 위한 필수적인 방법입니다. 이러한 상황에서는 자동화 및 구성 관리 도구를 찾아야 합니다. 요리사.

Chef에 관한 이 기사 시리즈에서는 1~3부를 통해 Chef Automation 도구의 설치 및 구성 절차를 살펴보고 다음 주제를 다룹니다.

이 튜토리얼은 Chef 작동 방식, 자동화, 구성 관리, 아키텍처 및 Chef 구성 요소에 대한 시작점을 제공합니다.

1. 구성 관리

구성 관리DevOps 실행의 핵심 초점입니다. 소프트웨어 개발 주기에서 모든 서버는 개발 주기에 중단이 발생하지 않도록 소프트웨어로 구성되고 잘 유지 관리되어야 합니다. 잘못된 구성 관리로 인해 시스템 중단, 유출 및 데이터 침해가 발생할 수 있습니다. 구성 관리 도구를 사용하면 DevOps 기반 환경에서 정확성, 효율성 및 속도를 촉진할 수 있습니다.

구성 관리 도구에는 PUSH 기반PULL 기반이라는 두 가지 모델이 있습니다. PUSH 기반에서 마스터 서버는 구성 코드를 서버에 푸시하고 PULL 기반 개별 서버는 구성 코드를 얻기 위해 마스터에 연결합니다. PUPPETCHEF는 널리 사용되는 PULL 기반 모델이고, ANSIBLE은 널리 사용되는 PUSH 기반 모델입니다. 이번 글에서는 CHEF에 대해 알아보겠습니다.

2. 셰프란 무엇인가요?

A Chef는 시스템 관리자가 조직의 여러 서버와 기타 장치에서 배포, 구성, 관리 및 지속적인 작업을 간단하고 쉬운 방법으로 자동화할 수 있는 오픈 소스 자동화 프로그램입니다.

  • 2008년에 OPSCODE로 설립되었으며 이후 CHEF(Chef Automation 도구)로 이름이 변경되었습니다.
  • 구성을 관리하고 조직의 전체 인프라를 자동화 및 조정하는 데 사용되는 Ruby 기반 자동화 도구입니다.
  • 이는 오픈소스 프로젝트이며 서버 클라이언트와 독립형의 두 가지 배포 모델이 함께 제공됩니다.
  • Chef는 Ubuntu, Redhat/CentOS, Fedora, macOS, Windows, AIX 등과 같은 다양한 운영 체제를 지원합니다.
  • Chef는 선언적이며 기본 스크립팅 언어보다 훨씬 간단합니다.
  • 회사가 시장 요구 사항에 맞게 최신 상태를 유지할 수 있도록 지속적인 배포를 제공합니다.
  • Chef의 주요 책임은 정의된 구성 상태를 유지하는 것입니다.
  • 수십, 수천 개의 노드를 쉽게 관리할 수 있는 자체 선언적 언어가 있습니다.
  • Chef는 클라우드에 적응할 수 있으며, Infrastructure on Cloud와 쉽게 통합됩니다.
  • Chef는 배우기 쉽고 강력한 커뮤니티 지원 DevOps 친화적 도구입니다.

3. 셰프 아키텍처

Chef 아키텍처는 3개의 주요 섹션으로 구분됩니다.

  • Chef WorkStation: Chef 사용자가 구성을 생성, 테스트 및 적용할 수 있는 로컬 개발 플랫폼입니다. Chef DK(개발 키트)가 설치된 로컬 데스크톱, 노트북일 수 있습니다. 프로덕션으로 승격하기 전에 개발/테스트 환경으로 사용할 수 있습니다.
  • Chef 서버: Chef-Server 소프트웨어가 설치 및 구성되어 있는 서버입니다. Chef의 코드를 관리하고 Chef Workstation의 구성 코드에 액세스하는 역할을 담당합니다. Chef 서버는 Linux 시스템이어야 하며 다른 운영 체제를 지원하지 않습니다.
  • Chef 클라이언트: Chef 코드 및 바이너리의 기타 종속 파일과 같은 구성 세부정보를 위해 Chef 서버에 연결하는 서버가 있습니다. Chef 서버에서 코드를 가져와 로컬에 배포합니다.

4. 셰프 구성 요소

다음은 주요 Chef 구성요소입니다.

  • 리소스는 인프라를 관리하는 데 사용되는 레시피의 기본 모듈입니다.
  • 속성은 키-값 쌍 형태의 설정입니다.
  • 레시피는 Workstation에서 만들 수 있는 속성 모음입니다. Chef 클라이언트에 Chef 코드로 적용할 수 있는 명령 세트입니다.
  • 레시피 모음을 요리책이라고 합니다.
  • 은 Chef 서버와 상호작용하는 Chef Workstation의 명령줄 도구입니다.

5. Chef 배포 모델

Chef에는 두 가지 배포 모델이 있습니다.

  • 서버 클라이언트 – 프로덕션 배포에 사용됩니다.
  • Chef Zero – 개발, 테스트 및 POC에 사용됩니다.

6. 셰프는 어떻게 일하나요? 코드로서의 인프라

코드형 인프라(Infrastructure as Code)는 다양한 설치/배포 및 구성 관리를 자동으로 수행할 수 있는 IT 인프라 관리입니다. 여기에서는 모든 구성, 설치가 코드로 작성됩니다.

  • Chef 클라이언트/노드는 Chef 서버에 등록 및 인증을 수행합니다.
  • Chef 클라이언트/노드는 주기적으로 Chef 서버를 조사합니다. Chef-Client가 Chef-Server에 저장된 데이터에 액세스하려고 할 때마다 인증 프로세스가 수행됩니다.
  • Ohai는 Chef 클라이언트가 시스템 상태를 확인하기 위해 실행하는 도구로, 노드의 속성(OS, 메모리, 디스크, CPU, 커널 등)을 감지하여 다음을 제공합니다. 이러한 속성은 요리사-클라이언트에 대한 것입니다. Ohai는 Chef Client 설치의 일부입니다.
  • 요리책이나 구성 설정에 변경 사항이 있으면 Chef-Client로 전송되어 업데이트/설치됩니다.
  • 요리책과 설정은 명령줄 도구인 Knife를 통해 Chef Workstation을 사용하여 Chef 서버에서 업데이트됩니다. Workstation은 Knife를 사용하여 모든 정책을 Chef 서버에 푸시합니다.
  • 각 클라이언트/노드는 Chef 서버를 정기적으로 확인하므로 서버 역할에 따라 구성이 개별적으로 적용됩니다. 예: Chef 노드에서 일부 노드는 데이터베이스 서버가 되고, 일부 노드는 게이트웨이 서버가 됩니다.
결론

이 기사에서는 구성 관리 및 Chef 자동화 도구의 기본 개념을 살펴보았습니다. 다음 기사에서는 Chef 설치의 단계별 프로세스를 살펴보겠습니다.