요즘의 화두
CI, CD, Full Automation
요즘 하시코프의 Codification이라는 단어에 인사이트를 느껴,
라이브 환경을 세팅하기 위한 코드들을 만들고 있음.
오픈스택 환경이 요즘 자주 죽고 있고, 내 로컬 머신의 스펙이 매우 빵빵하기 때문에
Vagrant로 로컬에 라이브 환경을 구축하는것도 괜찮겠다 싶어 몇가지 삽질중인 일기를 기록함..
#0 Vagrant
사용 중인 centos 커널을 Vagrant Box로 사용하기 위해 몇가지 삽질을 함.
일단 Virtualbox의 게스트에디션은 설치할 수 없음.. (uname이 달라 게스트 확장을 설치할 수 없음)
뭐 공유폴더를 제외하고는 그래도 NIC을 할당할 수 있으므로 사용하는데 큰 지장은 없다.
아무튼 패키징을 하다 보니 Vagrant의 NIC가 스태틱하게 박혀 있는 바람에 패키징에는 성공하였으나,
인스턴스를 만든 이후에 다시 동적으로 인터페이스를 잡아주는데 문제가 생김..
/etc/udev/rules.d/70-persistent-net.rules 제거
/etc/sysconfig/에서 nic설정정보를 제거 후 새로 패키징하여 박스로 등록
이후 팀에서 배포하는 시스템의 머신들을 VM으로 관리할 수 있게 됨.
#1 Heat Template, Ansible
히트 템플릿은 오픈스택에 대한 디펜던시가 있어, 이를 앤시블로 교체하는 작업을 진행 중..
팀원 한분이 멋지게 환경정보들을 조사해 주어 이를 바탕으로 Ansible Playbook을 만들고 있음.
로컬 환경에서의 인티그레이션 환경 구축을 위한 Vagrant
오픈스택 환경.. 더 나아가 운영팀에 전달할 배포스크립트들을
위해서는 Ansible이 가장 빠르고, 간단하다 판단하여 이를 기초로 작업을 진행 중..
지금 사용중인 커널이 Ansible에서 인젝트되는 스크립트들을 소화하지 못하는 문제가 있었음..
python-simplejson을 설치함. yum의 특정 명령어들도 소화하지 못하는 문제가 발생하여 yum 업데이트 진행.
해당 스크립트들은 Vagrantfile의 프로비전 블록에서 처리할 수 있도록 함.. (뒷탈을 막아야 하므로..)
Openstack, Vagrant, Physical환경에 대한 호스트 정보들을 따로 관리하고,
인프라 패키지, 미들웨어, 애플리케이션 총 3개의 레이어로 나누어 패키지 목록들을 정리하고 있고
패키지 설치, 업데이트, 프로세스 관리 세가지 토픽을 가지고 롤들을 정리하고 있음.
#2 인프라 자동화가 끝이 나면..
인프라 자동화가 끝이 나면 이제는 빌드 자동화의 단계로 넘어가야 함.
하지만 빌드 자동화를 위해 일단 팀에서 관리중인 프로덕트들을
시스템 뷰에서 독립적이도록 나누는 일이 먼저라고 판단함...
(현재는.. 이리저리 꼬인 프로세스들로 인해... 배포때 마다 고통을 받고 있음..)