이 튜토리얼은 Ansible과 인기 있는 커뮤니티 유지 관리 Ansible 역할인 geerlingguy.docker를 사용하여 여러 호스트에 Docker를 설치하는 방법을 안내합니다.


전제 조건

시작하기 전에 다음을 확인하십시오:


1단계: Ansible 플레이북 생성

docker-playbook.yml이라는 이름의 파일을 생성합니다:

- name: Install Docker using geerlingguy.docker role
  hosts: all
  become: yes  # 권한 상승을 위해 sudo 사용
  gather_facts: yes

  roles:
    - geerlingguy.docker

이 간단한 플레이북은 지정된 모든 호스트에 Docker 설치 역할을 적용합니다.


2단계: 역할 및 컬렉션 종속성 정의

외부 Ansible 역할 및 컬렉션 종속성을 명확하게 정의하기 위해 requirements.yml이라는 파일을 생성합니다:

roles:
  - name: geerlingguy.docker
    version: 7.4.1  # 일관성을 위해 버전 지정

collections:
  - name: community.docker
    version: ">=3.0.0"

버전을 지정하면 반복 가능하고 일관된 배포를 보장합니다.


3단계: 필요한 역할 및 컬렉션 설치

requirements.yml에 지정된 종속성을 설치하려면 다음 명령을 실행합니다:

ansible-galaxy install -r requirements.yml

이 명령은 역할과 컬렉션을 가져와 설치합니다.


4단계: 플레이북 실행

Ansible의 명령줄 인터페이스를 사용하여 플레이북을 실행합니다. 간단함을 위해 인벤토리를 인라인으로 지정할 수 있습니다:

ansible-playbook docker-playbook.yml -i "host1,host2," -u root

host1host2를 실제 대상 호스트 이름 또는 IP 주소로 바꿉니다.

참고:

  • 인라인 인벤토리의 끝에 있는 쉼표는 필수입니다.
  • -u root 옵션은 Ansible이 호스트에 연결하는 데 사용하는 사용자 설정; SSH 설정에 따라 수정하십시오.

Docker 설치 확인

플레이북을 실행한 후 각 호스트에서 Docker 설치를 확인하려면 다음을 실행합니다:

ssh root@host1 docker --version
ssh root@host2 docker --version

다음과 유사한 출력이 표시되어야 합니다:

Docker version 26.1.3, build XXXXXXX

결론

이 구조화된 방법을 따르면 Ansible을 효율적으로 활용하여 여러 서버에 Docker를 일관되게 신뢰성 있게 설치할 수 있으며, 인프라 관리가 간소화됩니다.