4장. 인벤토리: 서버 설명하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
지금까지는 하나의 서버(또는 Ansible에서는 호스트)로만 작업해 왔습니다. 가장 간단한 인벤토리는 쉼표로 구분된 호스트 이름 목록이며, 서버가 없어도 사용할 수 있습니다:
$ ansible all -i 'localhost,' -a date
실제로는 여러 호스트를 관리하게 될 것입니다. Ansible이 알고 있는 호스트의 집합을 인벤토리라고 합니다. 이 장에서는 여러 머신이 포함된 인벤토리를 생성하여 호스트 집합을 Ansible 인벤토리로 설명하는 방법을 배우게 됩니다.
예제 4-1과 같이 모든 인벤토리 플러그인을 명시적으로 활성화하는 예제 4-1과 같은 ansible.cfg 파일을 만들어야 합니다.
예 4-1. ansible.cfg
[defaults] inventory = inventory [inventory] enable_plugins = host_list, script, auto, yaml, ini, toml
이 장에서는 인벤토리 예제에서 인벤토리라는 이름의 디렉터리를 사용하겠습니다. 인벤토리는 매우 유연한 객체로, 파일(여러 형식), 디렉토리 또는 실행 파일일 수 있으며 일부 실행 파일은 플러그인으로 번들로 제공됩니다. 인벤토리 플러그인을 사용하면 Cloud 제공업체와 같은 데이터 소스를 가리켜 인벤토리를 컴파일할 수 있습니다. 인벤토리는 플레이북과 별도로 저장할 수 있습니다. 즉, 명령줄에서 Vagrant, Amazon EC2, Google Cloud Platform 또는 Microsoft Azure에서 실행되는 호스트 또는 원하는 곳에서 사용할 하나의 인벤토리 디렉터리를 생성할 수 있습니다!
참고
서지 반 진데라흐터는 Ansible 인벤토리에 대해 가장 잘 알고 있는 사람입니다. 자세한 내용은 그의 블로그를 참조하세요.
인벤토리/호스트 파일
Ansible에서 호스트를 설명하는 기본 방법은 인벤토리 호스트 파일이라고 하는 텍스트 파일에 호스트를 나열하는 것입니다. 가장 간단한 형식은 예제 4-2에 표시된 것처럼 hosts라는 파일에 호스트 이름을 나열하는 것입니다.
예 4-2. 매우 간단한 인벤토리 파일
frankfurt.example.com helsinki.example.com hongkong.example.com johannesburg.example.com london.example.com newyork.example.com seoul.example.com sydney.example.com
Ansible은 기본적으로 인벤토리에 로컬 호스트라는 호스트 하나를 자동으로 추가합니다. localhost 은 로컬 컴퓨터를 가리키며, 이 호스트는 SSH로 연결하지 않고 직접 상호 작용할 것임을 이해합니다.
예선전: 여러 대의 방랑자 기계
인벤토리에 대해 이야기하려면 여러 호스트와 상호 작용해야 합니다. 세 개의 호스트를 불러오도록 Vagrant를 구성해 ...