작성
·
144
1
안녕하세요. MSA 강의부터 젠킨스까지 강의 재밌게 듣고 있습니다. 강의를 듣다가 ansible의 역할에 대해 궁금한 점이 생겨 질문드립니다.
현재 저희가 구축한 환경은
젠킨스 -> ansible -> k8s로 이루어진 환경으로 알고있습니다. 젠킨스가 빌드하고 빌드된 파일을 ansible로 보내서 ansible에서 이미지를 빌드 및 푸시하고 k8s에서 해당 이미지를 사용하여 배포하는 과정이라고 이해했습니다.
저는 여기서 ansible의 역할이 jenkins만으로 충분히 대체될 수 있다는 생각이 들었습니다. 이미지를 빌드하고 푸시하는 과정을 jenkins의 exec command나 script로 따로 짜서 진행하면 ansible의 역할을 대체할 수 있나요? 만약 대체할 수 있다면 그럼에도 불구하고 ansible을 사용하는 이유가 분명이 있을 것이라 사료되는데요, 저희가 구축한 환경 혹은 현업에서 ansible이 또 어떤 방식으로 활용될 수 있을지가 궁금해서 질문드립니다.
감사합니다.
답변 1
0
안녕하세요, 이도원입니다.
말씀하신 것처럼 강의에서의 내용만이라면 Script나 Pipeline 등을 조금 더 보강하여 Jenkins에서도 충분히 Ansible의 역할을 수행할 수 있습니다. 다만, 어디까지난 Jenkins는 CI/CD의 역할이고, Ansible은 IaC의 역할이기 때문에, 사용하는 용도가 다르다고 생각됩니다. Ansible은 단순히 파일의 패키징이나 배포의 역할 이외에도 인프라에대한 설정이나 프로그램의 설치 및 계정의 생성, 리소스를 생성이나 할당 등의 작업을 진행할 수 있습니다. 만약 새로운 환경을 다시 설치하고, 관련된 리소스를 생성하고 배치하는 전 과정을 수행해야 한다고 하면, Jenkins 만으로는 되지 않을 것입니다. 이럴 때 코드(스크립트)로 이러한 작업을 수행할 수 있도록 지원해 주는 것인 IaC(Infrastructure as Code)이고 Terraform이나 Ansible 등을 사용해 볼 수 있습니다.
추가 질문 사항 있으시면 다시 글 남겨 주세요.
감사합니다.
답변 감사합니다. ansible에 대한 이해가 부족했던 것 같습니다. 좀 더 찾아보겠습니다. 감사합니다