앤서블 컨텐츠 콜렉션
출처 : 앤서블로 시작하는 인프라 자동화
컨텐츠 콜렉션
- 컨텐츠 콜렉션은 앤서블을 활용한 로직을 공유할 때 사용되는 배포 포맷으로 나만의 앤서블 컨텐츠를 개발하고 배포할 때 사용된다.
- 앤서블 컨텐츠 콜렉션을 사용하면 핵심 앤서블 코드 업데이트와 모듈 및 플러그인에 대한 업데이트가 분리된다.
- 모듈 : 소프트웨어의 구성 요소로 독립적으로 실행될 수 있는 하나의 단위. 함수, 변수, 클래스 등으로 구성된다.
- 플러그인 : 소프트웨어에 추가적인 기능을 제공하는 독립적인 소프트웨어 모듈. 특정 소프트웨어에 연결되어 작동하며, 해당 소프트웨어의 기능을 확장하거나 보완한다.
- 앤서블 컨텐츠 콜렉션을 사용하면 유연성이 향상된다. 지원하는 모듈을 모두 설치하는 대신 필요한 컨텐츠만 설치할 수 있다.
앤서블 공식 문서의 컨텐츠 콜렉션
- 앤서블 공식 문서를 통해 어떤 컨텐츠 콜렉션이 있는지 확인하고 참조할 수 있다.
- 앤서블 공식 문서 Collection Index : https://docs.ansible.com/ansible/latest/collections/index.html
명령어를 이용한 앤서블 컨텐츠 콜렉션
- 컨텐츠 콜렉션을 개발 중인 앤서블 플레이북 프로젝트 환경에 설치해본다.
ansible-galaxy collection -h
컨텐츠 콜렉션 설치는 ansible-galaxy collection 명령어를 사용한다. 어떤 서브 명령어를 이용해야 할지 잘 모를 땐 -h 옵션으로 서브 명령어의 종류와 설명을 확인할 수 있다.
ansible-galaxy collection list
ansible-galaxy collection list 명령어를 사용하면 컨텐츠 콜렉션을 설치하기 전에 앤서블이 설치된 프로젝트 환경에 어떤 콜렉션이 설치되어있는지 확인할 수 있다.
앤서블 프로젝트 환경에 관련된 패키지가 설치되어 있다면 제공 중인 컨텐츠 콜렉션이 모두 설치되어 있는 것이다. 그런데 ansible-core만 설치되어 있다면 설치되어 있는 컨텐츠 콜렉션이 없을 수 있다.
ansible-galaxy collection download -p ./collection openstack.cloud
모든 앤서블 환경이 온라인 환경을 지원하는 것은 아니다. 때로는 오프라인 환경에서 앤서블을 사용해야 할 상황이 있을 수 있는데, 이 때는 온라인 환경에서 필요로 하는 콜렉션을 tar 파일 형태로 다운로드할 수 있다.
위처럼 ansible-galaxy collection download 명령어와 함께 콜렉션명을 입력하고 -p 옵션으로 파일을 다운로드할 경로를 지정할 수 있다.
- ansible-galaxy collection download : ansible galaxy collection을 다운로드 하는 명령어
- -p ./collection : 다운로드한 collection을 저장할 경로
- openstack.cloud : 다운로드할 collection 이름
ls -l collection/
다운로드한 콜렉션은 -p 옵션으로 지정한 디렉토리에서 확인할 수 있다.
ansible-galaxy collection install openstack.cloud
ansible-galaxy collection install 명령어와 파일 이름을 입력하면 앤서블 갤럭시로부터 컨텐츠 콜렉션이 설치된다.
ansible-galaxy collection list openstack.cloud
설치된 컨텐츠 콜렉션은 ansible-galaxy collection list 명령어와 콜렉션 이름으로 확인할 수 있다.
cd /root/.ansible/collections/ansible_collections/
rm -rf openstack*
콜렉션을 설치해도 콜렉션 버전이 맞지 않아 삭제해야 할 경우 컨텐츠 콜렉션이 설치된 디렉토리에서 rm 명령어를 사용해 삭제한다.
ansible-galaxy collection list openstack.cloud
다시 ansible-galaxy collection list 명령어를 사용해 정상적으로 삭제되었는지 확인할 수 있다.
ansible-galaxy collection install openstack.cloud:2.0.0
ansible-galaxy collection list openstack.cloud
컨텐츠 콜렉션을 설치할 때 해당 콜렉션의 버전을 선택할 수 있다.