8. Cobbler
• 네트워크 기반으로 여러 컴퓨터에 OS 설치 및 업데이트를 자동화하는 프로비저
닝 서버
• PXE (network booting), 가상화 (Xen, QEMU/KVM, VMware) 등을 통한 배포 지
원
• Kickstart 메커니즘으로 구성
• Cobbler distro 이미지 프로파일에 Kickstart 정보가 설정
• --ksmeta와 Snippets을 이용해 Kickstart 템플릿을 변경해 배포 가능
• koan이라는 Client side 헬퍼를 이용해 프로비저닝
10. Kickstart & Anaconda
• Kickstart는 리눅스 시스템에서 새로운 컴퓨터 시스템에 대한 설치와 구성을 쉽게
하기 위해 사용하는 툴
• Kickstart 파일(ex. anaconda-ks.cfg)을 이용
• Cobbler는 이 Kickstart의 프로세스 구성을 자동화
• Anaconda는 리눅스 시스템에서 사용되는 인스톨러
• CD-ROM, HDD 같은 로컬 스토리지뿐만 아니라 네트워크 리소스를 통한 설치를
지원
• Kickstart와 함께 프로비저닝 자동화를 위해 사용 됨
11. Ohai
• Ohai는 아래와 같이 노드의 속성을 검출하는데 사용되는 툴
• 플랫폼 상세 정보
• 네트워크 사용량
• 메모리 사용량
• CPU 사용량
• 커널 데이터
• 호스트 네임
• 도메인 네임 (FQDN)
• 그외 설정 정보
사실 개발자가 여기 계신분들을 모시고 서버 프로비저닝 자동화에 대해 발표하는게 쉽지는 않지만
개발자적인 입장에서 조사를 하고 자료를 준비했으니 재미있게 들어주셨으면합니다.
이번 세미나에서는 지난번에 다뤘던 배포 자동화에 이어 프로비저닝 자동화에 대해 다루겠습니다.
지난번에 봤던 전체 흐름을 빠르게 살펴보고 프로비저닝 플로우를 조금 자세히 들어가보도록 하겠습니다.
플로우 아래에 있는 서비스들이 실제로 Fuel에서 프로비저닝 자동화를 위해 사용하는 서비스들입니다.
지난번에는 전체 흐름에서 오픈스택 배포 자동화에 대해서 중심적으로 다뤘었는데요
오늘은 전체를 다시 한번 따라가면서 노드 디텍션과 OS 프로비저닝 자동화부분을 자세히 집고 넘어가겠습니다.
지난 시간에 보았던 전체 흐름을 빠르게 한번 훑고 넘어가겠습니다.
노드 디텍션 부분입니다.
각각의 노드가 PXE 부팅을 하게 되면 각 노드에 Nailgun agent가 실행이 되는데 이때 이 녀석이 노드의 전체 정보를 Fuel-Master 노드에 올려주게 됨으로써 Fuel-master 노드는 각각의 노드를 디텍션하게 됩니다.
노드가 디텍션이되면 사용자는 나름대로의 클라우드 환경을 구성하고 디플로이 버튼을 누르면 먼저 Nailgun 이라는 서비스가 Astute라는 워커를 이용해서 OS 프로비저닝을 진행하게 됩니다.
이때 이용하는 서비스가 Cobbler 라는 서버인데요. 뒤에 자세히 설명을 하도록 하겠습니다.
마지막으로 OS 프로비저닝이 끝나면 오픈스택 배포가 시작이 되는데 Astute는 각 노드에 MCollective를 이용해 astute.yaml이라는 노드의 배포설정파일을 전송하게 되고
각 노드는 이를 바탕으로 Puppet을 이용해 오픈스택 구성을 마무리하게 됩니다.
여기까지가 전체 플로우에 대한 간략한 설명이였고
이제부터 시퀀스 다이어그램을 보면서 자세히 보도록 하겠습니다.
디텍션부분부터 OS 프로비저닝까지의 전체 시퀀스 다이어그램입니다.
이 과정상에 여러가지 서비스들이 서로 유기적으로 돌아감을 알 수 있는데요
상단에서 중간정도의 부분이 노드 디텍션하는 부분입니다.
PXE 네트워크 상의 노드를 Cobbler가 발견하는걸 보실 수 있는데 Cobbler가 PXE 서버 역할을 하기 때문입니다.
Cobbler는 OS 설치나 업데이트를 자동화 해주는 프로비저닝 서버라고 보시면 됩니다. 이 단계에서는 PXE 서버 역할을 하고 노드에 부트스트랩 OS 설치를 진행합니다.
설치가 완료되면 Ohai라는 서비스에 정보를 요청하시는 부분을 볼 수 있으실 겁니다.
이 Ohai라는 서비스가 각각의 노드들에 대한 정보를 가쳐오는 녀석인데요.
Ohai라는 서비스를 통해 노드의 정보를 가져오면 Nailgun agent가 Fuel-master 노드에 있는 Nailgun에게 REST API 호출을 통해 전송하게됨으로써 노드 등록이 마무리가 됩니다.
그 다음은 사용자가 오픈스택 환경을 구성을 하게 될거구 그 단계를 거쳐서 배포 버튼을 누르면 제일 먼저 OS 프로비저닝을 시작하게 되는데요.
가운데 하단 부분부터의 흐름을 타게 됩니다.
Nailgun이 Astute 워커에게 OS 프로비저닝을 지시하게 되고 Astute는 Cobbler에게 CentOS 프로비저닝을 지시하게됩니다.
지금 버전에서는 오픈스택 노드는 CentOS만 지원해주고 있습니다.
CentOS 이미지, Nailgun agent와 MCollective가 설치가 되고 Nailgun에 메타데이터를 전송하므로써 OS 프로비저닝 자동화는 마무리됩니다.
Fuel-master 노드에 도커 컨테이너로 떠있습니다.
방금보셨던 Cobbler 배포 이미지 프로파일 정보이고
Fuel-master노드 Cobbler에서 관리되는 파일 정보들 입니다.
현재 Fuel-master Cobbler 서버에는 4가지의 배포판 이미지가 올라가있는데요
CentOS와 Ubuntu가 각각 Bootstrap버전과 배포버전이 올라가 있습니다.
배포판은 웹상에서 OS DVD 버전을 다운 받으신 후 Cobbler에 등록하실 수 있습니다.