이 튜토리얼은 Ansible과 인기 있는 커뮤니티 유지 관리 Ansible 역할인 geerlingguy.docker
를 사용하여 여러 호스트에 Docker를 설치하는 방법을 안내합니다.
전제 조건
시작하기 전에 다음을 확인하십시오:
- 제어 머신에 Ansible이 설치되어 있습니다. (설치 가이드)
- 대상 호스트에 대한 SSH 액세스가 구성되어 있습니다.
- 대상 호스트에서 sudo 권한(또는 root 액세스)을 가진 사용자입니다.
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
host1
및 host2
를 실제 대상 호스트 이름 또는 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를 일관되게 신뢰성 있게 설치할 수 있으며, 인프라 관리가 간소화됩니다.