기술 가이드

Ubuntu 17.04에 Chef 서버 설치 및 구성

6 min read DevOps 업데이트됨 08 Oct 2025
Ubuntu 17.04에 Chef 서버 설치 및 구성
Ubuntu 17.04에 Chef 서버 설치 및 구성

중요: Ubuntu 17.04는 최신 장기 지원(LTS) 버전이 아닐 수 있습니다. 가능한 경우 최신 LTS(예: Ubuntu 20.04/22.04 등)로 마이그레이션을 고려하세요. 이 문서는 원본 대상이 17.04인 환경을 전제로 합니다.

소개

Chef는 Ruby와 Erlang으로 작성된 무료 오픈소스 구성 관리 도구입니다. AWS, OpenStack, RackSpace 등 클라우드 플랫폼과 쉽게 통합되어 서버를 자동으로 생성하고 관리할 수 있습니다. 조직이 성장해 노드 수가 증가하면 개별 노드를 수동으로 관리하기 어려워지므로 중앙에서 노드를 관리할 수 있는 Chef 같은 도구가 필요합니다.

간단 정의: Chef 서버는 중앙 구성 저장소이며, 워크스테이션은 관리 작업을 수행하는 클라이언트 환경, 노드는 Chef가 관리하는 대상 시스템입니다.

주요 단계 요약

  • 시스템 업데이트
  • 호스트네임(FQDN) 설정
  • NTP로 시간 동기화
  • Chef Server 패키지 다운로드 및 설치
  • chef-server-ctl reconfigure로 서비스 구성
  • 웹 관리 콘솔(Chef Manage) 설치 및 구성
  • 관리자 사용자와 조직 생성
  • 선택적 플러그인(Reporting, Push Jobs) 설치

사전 준비

  • 최소 Ubuntu 17.04 서버 인스턴스
  • 루트 권한(또는 sudo -i로 루트 전환)
  • 서버로 향하는 도메인 이름(권장) 또는 고정 퍼블릭 IP

참고: 루트가 아닌 사용자를 통해 안내된 명령을 실행하는 경우 명령 앞에 sudo를 붙이십시오.

시스템 업데이트

패키지와 저장소를 최신 상태로 만드세요.

apt update && apt -y upgrade

업데이트 후 재시작이 필요한 커널/서비스가 있으면 서버를 재시작하세요.

호스트네임 설정

Chef는 해석 가능한(FQDN) 호스트네임이 필요합니다. 예: chef.example.com. 아래 예시를 실제 도메인/호스트네임으로 교체하세요.

hostname 'chef.yourdomain.com'

/etc/hostname 파일 업데이트:

echo "chef.yourdomain.com" | tee /etc/hostname

/etc/hosts에 IP와 호스트네임 추가(예: 퍼블릭 IP):

echo "192.168.1.1 chef.yourdomain.com" >> /etc/hosts

192.168.1.1을 실제 서버 IP로 바꾸세요.

NTP 설정(시간 동기화)

Chef는 시간 변화에 민감하므로 정확한 시계 동기화가 중요합니다. NTP는 UDP 포트 123을 사용합니다. 설치 및 시작:

apt install ntp
systemctl start ntp
systemctl enable ntp

동기 상태 확인:

ntpq -p

정상적으로 동기화되면 출력에 여러 원격 서버와 상태 열이 표시됩니다. 시간 동기화가 실패하면 방화벽(UDP 123) 또는 네트워크 연결을 확인하세요.

중요: 가상환경 또는 클라우드의 경우 하이퍼바이저/호스트 측 시간 동기화를 확인하세요. 호스트 시간과 컨테이너/VM 시간 동기화가 충돌하면 NTP가 예측 불가능하게 동작할 수 있습니다.

Chef 서버 패키지 다운로드 및 설치

공식 패키지 링크는 Chef 다운로드 페이지에서 확인할 수 있습니다. 예시(원본 문서 기준):

wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb

패키지 이름은 아키텍처(amd64 등)와 Ubuntu 릴리스에 따라 달라질 수 있습니다. 최신 버전 및 올바른 플랫폼용 패키지를 선택하세요.

설치:

dpkg -i chef-server-*.deb

설치 후 Chef 서버 컴포넌트들을 구성해야 합니다.

Chef 구성 및 서비스 시작

모든 서비스를 생성·설정하려면 다음을 실행하세요:

chef-server-ctl reconfigure

이 명령은 몇 분이 걸릴 수 있으며, 내부적으로 각종 구성요소(nginx, postgresql, rabbitmq 등)를 설치·구성합니다. 완료 시 아래와 유사한 메시지가 표시됩니다:

Chef Client finished, 491/1096 resources updated in 03 minutes 13 seconds
Chef Server Reconfigured!

서비스 상태 확인:

chef-server-ctl status

정상 실행 예시 출력에는 bookshelf, nginx, postgresql, rabbitmq 등 여러 서비스의 상태가 표시됩니다.

웹 관리 콘솔 설치

Chef Manage(웹 GUI)를 설치하면 데이터백, 런리스트, 롤, 환경, 쿠크북 등을 웹에서 관리할 수 있습니다.

chef-server-ctl install chef-manage
chef-server-ctl reconfigure
chef-manage-ctl reconfigure

라이선스 동의 요청을 자동 수락하려면:

chef-manage-ctl reconfigure --accept-license

설치가 완료되면 웹 콘솔 URL(기본적으로 http://Your-Server-IP 혹은 도메인)을 통해 로그인 화면에 접근할 수 있습니다.

Chef 로그인 화면

이미지 설명: Chef 서버 웹 로그인 화면의 예시 인터페이스

로그인 후 대시보드 예시:

Chef 대시보드

이미지 설명: Chef 관리 콘솔의 대시보드 화면

관리자와 조직 생성

관리 콘솔 접근 전 관리자 사용자와 조직을 만들어 RSA 개인키를 생성해야 합니다. 개인키는 워크스테이션과 노드 설정에 필요합니다.

키 저장용 디렉터리 생성:

mkdir ~/.chef

관리자 사용자 생성(예시):

chef-server-ctl user-create admin Chef Administrator [email protected] StrongPassword -f ~/.chef/admin.pem
  • admin: 사용자 계정(짧은 이름)
  • Chef Administrator: 성과 이름(공백으로 구분)
  • 이메일: 관리자 이메일
  • StrongPassword: 강력한 비밀번호로 변경
  • -f 옵션은 개인키 파일 저장 경로

조직 생성(예시):

chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem
  • my_org: 조직의 짧은 이름
  • ‘My Organization’: 조직의 전체 이름
  • –association_user로 관리자를 연결

생성 후 ~/.chef 디렉터리에 admin.pem, my_org.pem 같은 키 파일들이 생성됩니다. 이 키들은 워크스테이션에서 chef-repo 또는 knife 설정에 사용됩니다.

웹 콘솔 접근

브라우저에서 다음 주소로 접속합니다:

http://Your-Server-IP

도메인을 구성한 경우 도메인 이름을 사용하세요. 로그인 화면이 표시되면 위에서 만든 관리자 계정으로 로그인합니다.

선택적 플러그인 설치

보고서(Reporting) 설치:

chef-server-ctl install opscode-reporting
chef-server-ctl reconfigure
opscode-reporting-ctl reconfigure
opscode-reporting-ctl test

Push Jobs 설치(노드에 독립적인 작업 실행):

chef-server-ctl install opscode-push-jobs-server
chef-server-ctl reconfigure
opscode-push-jobs-server-ctl reconfigure

각 모듈을 설치한 후 관련 테스트 명령으로 정상 동작을 확인하세요.

일반적인 문제 해결 팁

  • reconfigure가 실패하면 로그 파일(/var/log/chef-server/ 또는 /var/log/chef-manage/)을 확인하세요.
  • 포트 충돌: nginx(80/443), rabbitmq, postgresql 등의 포트 충돌 여부를 확인하세요.
  • 방화벽: Chef 서버 접근에 필요한 포트(80, 443 등)가 열려 있는지 확인하세요.
  • 시간 동기화 실패는 인증과 통신에 문제를 일으킵니다. ntpq -p로 동기 상태를 확인하세요.

보안 권장사항

  • HTTPS 설정: 운영 환경에서는 nginx에 TLS 인증서를 적용해 HTTPS로 접속하세요.
  • 개인키 보호: ~/.chef/*.pem 파일은 엄격히 보호(권한 600)하세요.
chmod 600 ~/.chef/*.pem
  • 최소 권한 원칙: 관리자 계정은 필요 최소한의 인원만 사용하세요.
  • 백업: postgresql 데이터베이스와 중요한 키 파일을 정기적으로 백업하세요.

마이그레이션 및 호환성 팁

  • Chef 패키지 버전과 Ubuntu 릴리스(16.04, 18.04 등) 호환성을 확인하세요. 다운로드 페이지에서 운영체제별 패키지를 선택해야 합니다.
  • 오래된 OS(예: 17.04)는 보안 업데이트가 제공되지 않을 수 있으므로 가능한 경우 LTS로 업그레이드하거나 최신 지원 버전으로 재설치하는 것을 권장합니다.

역할별 체크리스트

운영팀:

  • NTP 및 호스트네임 확인
  • 방화벽 규칙 검토
  • TLS 인증서 적용

SRE/DevOps:

  • chef-server-ctl reconfigure 모니터링
  • 백업 스케줄 설정
  • 모니터링 지표(프로세스, 메모리, 디스크) 수집

보안팀:

  • PEM 파일 권한 점검
  • 사용자 및 조직 접근 감사
  • 취약점 스캔 수행

간단 체크리스트(실행 전/후)

실행 전:

  • 시스템 업데이트 완료
  • 퍼블릭 IP와 도메인 준비
  • 포트(80,443,123 등) 허용

설치 후:

  • chef-server-ctl status 확인
  • 웹 콘솔 로그인 확인
  • 관리자/조직 키 파일 안전 저장
  • 선택적 플러그인 동작 확인

수용 기준

  • chef-server-ctl status가 모든 주요 서비스의 실행 상태를 반환한다.
  • 웹 관리 콘솔에 관리자 계정으로 로그인 가능하다.
  • 관리자 키(~/.chef/*.pem)가 생성되어 워크스테이션에서 접근 가능하다.
  • NTP가 동기화되어 ntpq -p 출력에서 서버가 적어도 하나 이상의 정상 원격 서버와 연결되어 있다.

명령 치트시트

  • 시스템 업데이트: apt update && apt -y upgrade
  • 호스트네임 설정: hostname ‘chef.example.com’
  • NTP 설치: apt install ntp && systemctl enable –now ntp
  • 패키지 설치: dpkg -i chef-server-*.deb
  • 구성 적용: chef-server-ctl reconfigure
  • 상태 확인: chef-server-ctl status
  • 관리자 생성: chef-server-ctl user-create … -f ~/.chef/admin.pem
  • 조직 생성: chef-server-ctl org-create … -f ~/.chef/my_org.pem

간단 방법론(설치 절차 요약)

  1. 인프라 준비: DNS, 방화벽, 루트 접근
  2. OS 업데이트 및 시간 동기화 설정
  3. Chef 패키지 다운로드 및 설치
  4. chef-server-ctl reconfigure로 서비스 구성
  5. Chef Manage로 웹 관리 기능 추가
  6. 관리자·조직 생성 및 키 배포
  7. 모니터링·백업·보안 조치 적용

FAQ(간단 답변)

  • Q: Ubuntu 17.04가 반드시 필요한가요? A: 원본 가이드는 17.04를 기준으로 했지만 최신 LTS 사용을 권장합니다.
  • Q: Chef Server를 HA(고가용성)로 운영할 수 있나요? A: 네. 고가용성 구성에는 추가 아키텍처(로드밸런서, 외부 DB 등)가 필요합니다. 본 문서는 단일 노드 설치를 다룹니다.

요약

  • 이 가이드는 Ubuntu 17.04에 Chef 서버를 설치·구성하는 단계별 절차와 체크리스트, 보안 권장사항, 문제 해결 팁을 제공합니다.
  • 설치 후에는 관리자 계정과 조직을 생성하고 개인키를 안전하게 보관해야 합니다.
  • 운영 환경에서는 TLS 적용, 정기 백업, 모니터링, 시간 동기화 검증을 반드시 수행하세요.

핵심 포인트:

  • 호스트네임은 FQDN이어야 합니다.
  • NTP로 시간 동기화 필수.
  • chef-server-ctl reconfigure로 모든 서비스 구성.
  • 관리자 및 조직 키는 안전하게 보관.

더 읽을거리: Chef 공식 문서와 패키지 다운로드 페이지에서 최신 패키지와 추가 설정(HA, LDAP 통합, 외부 DB 연동 등)을 확인하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Mac에서 게스트 계정 만들기 및 관리하는 방법
macOS

Mac에서 게스트 계정 만들기 및 관리하는 방법

Google Docs에서 이미지 다운로드하는 6가지 방법
How To

Google Docs에서 이미지 다운로드하는 6가지 방법

Chrome이 열리지 않을 때: 원인과 해결 방법
Troubleshooting

Chrome이 열리지 않을 때: 원인과 해결 방법

Windows 시작 메뉴에서 설정 아이콘 사라짐 — 복구 가이드
Windows

Windows 시작 메뉴에서 설정 아이콘 사라짐 — 복구 가이드

Windows에서 스크롤바 너비 변경하는 방법
윈도우 가이드

Windows에서 스크롤바 너비 변경하는 방법

Ubuntu 16.04 자동 보안 업데이트 설정
시스템 관리

Ubuntu 16.04 자동 보안 업데이트 설정