롤과 콘텐츠 컬렉션을 활용한 플레이북 구현 - 앤서블 갤럭시

728x90
반응형

출처 : 앤서블로 시작하는 인프라 자동화

 

 

앤서블 갤럭시

  • 앤서블 갤럭시는 앤서블에서 사용되는 롤을 저장하고 공유하는 저장소이다.
  • 많은 사람들이 앤서블을 이용해 롤을 개발하고, 개발한 롤을 앤서블 갤럭시에 공유한다.
  • 앤서블 갤럭시에서 가지고 온 롤은 검증되지 않은 것이 많아서 사용 시 주의해야 한다.
  • 앤서블 갤럭시 주소 : https://galaxy.ansible.com
 

Ansible Galaxy

 

galaxy.ansible.com

 

 

명령어를 이용한 앤서블 갤럭시 활용

  • 앤서블 갤럭시 사이트에서 찾은 롤을 개발 중인 앤서블 프로젝트로 가져오려면 ansible-galaxy 명령어를 사용해야 한다.

 

ansible-galaxy role -h

 

ansible-galaxy role 명령어를 통해 롤을 가져오려는데 서브 명령어가 기억나지 않는다면 -h(--help) 옵션으로 서브 명령어와 설명을 볼 수 있다.

 

ansible-galaxy role search postgresql --platforms 운영체제이름

 

앤서블 갤럭시 사이트에서 롤을 검색할 수도 있지만, ansible-galaxy role search 명령어를 통해 롤을 검색할 수 있다. 롤과 --platforms 옵션에 운영체제 이름을 입력하면 해당 운영체제에서 사용가능한 롤을 검색할 수 있다.

 

ansible-galaxy role info buluma.postgres

 

앤서블 갤럭시에서 검색한 롤이나 ansible-galaxy role search 명령어를 통해 검색한 롤 모두 ansible-galaxy role info 명령어를 통해 상세 내용을 확인할 수 있다.

commit_url의 깃허브에 방문하여 어떤 플레이북으로 구성되어 있는지 확인하면 롤 사용법, 설치 가능한 운영체제 버전 등을 확인할 수 있다. 위 명령어의 경우 postgresql로 검색된 롤 중 buluma.postgres 롤의 상세 정보를 확인한 내용이다.

 

ansible-galaxy role install -p roles buluma.postgres

 

ansible-galaxy role install 명령어를 이용해 검색한 롤을 설치할 수 있다. 이때 -p 옵션을 사용해 롤이 설치될 디렉토리 경로를 지정한다. 위는 명령어가 실행되는 현재 디렉토리 내의 roles 디렉토리에 롤을 설치하겠다는 의미이다.

 

ll roles

tree roles/buluma.postgres/

 

롤이 정상적으로 설치되었는지 ll(ls -al) 명령어를 이용하여 roles 디렉토리를 살펴보면 buluma.postgres 디렉토리를 확인할 수 있다. 또한 tree 명령어를 통해 해당 디렉토리의 구조를 확인할 수 있다.

 

cat roles/buluma.postgres/tasks/main.yml

 

롤이 설치되면 롤 안의 yml 파일을 살펴볼 수 있다. 

 

ansible-galaxy role list -p ./roles

 

설치된 롤은 ansible-galaxy role list 명령어를 이용해 확인할 수 있다. 이때 -p 옵션을 사용하여 롤이 있는 경로를 지정할 수 있다.

그러나 이렇게 경로를 지정해도 WARNING 메시지가 출력된다. 앤서블 환경 설정에 롤 디렉토리 관련 설정이 되어있지 않기 때문이다.

 

vi ansible.cfg

[defaults]
inventory = ./inventory
remote_user = root
ask_pass = false
inject_facts_as_vars = false
roles_path = ./roles

 

ansible.cfg 파일을 열고 [defaults] 섹션 아래에 roles_path 파라미터를 위 코드와 같이 추가한다. 여기서 ./roles는 현재 디렉토리의 roles 디렉토리라는 뜻이다.

 

ansible-galaxy role list

 

다시 ansible-galaxy role list 명령어를 실행한다. 이번에는 -p 옵션 없이 실행해도 WARNING 메시지가 출력되지 않고 롤 목록을 확인할 수 있다.

 

ansible-galaxy role remove buluma.postgres

 

ansible-galaxy role remove 명령어를 이용해 설치했던 롤을 삭제할 수 있다.

 

 

728x90
반응형