CH04_03. 애드혹 명령어 (Ad-hoc Command)
앤서블을 사용하는 방법으로는 애드혹 명령어와
yaml파일을 작성해서 앤서블 playbook을 특정 인벤토리에 수행하는 방법이 있다.
앤서블 애드혹 명령어는 yaml파일을 이용한 앤서블 playbook을 작성하지 않고 명령어를 통해 직접 특정 앤서블 모듈을 호출하여 실행한다.
이는 명령어를 이용하므로 간단하지만 재사용하기는 어렵다. 따라서 테스트 목적으로 사용할 때 유용하다.
이번 시간에는 앤서블의 애드혹 명령어 사용방법 대해 알아보자
https://github.com/tedilabs/fastcampus-devops/tree/main/2-ansible/02-adhoc
GitHub - tedilabs/fastcampus-devops: 🚀 패스트캠퍼스 데브옵스 초격차 코스 자료
🚀 패스트캠퍼스 데브옵스 초격차 코스 자료. Contribute to tedilabs/fastcampus-devops development by creating an account on GitHub.
github.com
앤서블을 이용하기 위한 명령어는 아래와 같다.
ansible host-pattern -m module [-a 'module options'] [-i inventory]
host-pattern은 인벤토리 내에 있는 그룹명
-m module은 실행할 모듈
-a 'module options'는 모듈이 추가적인 옵션을 필요할 때 사용하고
-i inventory는 인벤토리 파일을 직접 지정할 때 사용한다.
첫 번째 예시로 만약 아마존 인벤토리를 이용한다면 ansible all -m ping -i amazon.inv -u ec2-user -k 명령어를 입력하면 된다.
amazon.inv라는 인벤토리에서
all이라는 기본 그룹에
ping이라는 모듈을 실행했다.(icmp ping과는 다르다. 대상 호스트에 연결 후 파이썬 사용 가능 여부를 확인하는 모듈이다.)
-u 옵션은 remote_user를 선택하는데 ec2-user가 아마존 리눅스의 기본 사용자이다.
-k 옵션은 ssh접속을 위한 패스워드를 물어보도록 한다.
(만약 ssh 키를 이용해서 접근을 하는데 ssh-agent를 사용하지 않는다면 --private-key [pem 키의 디렉토리 위치] 옵션을
통해 ssh 접근을 할 수 있다.)
두 번째 예로는 ansible ubuntu -m command -a "uptime" -i vars.inv 명령어가 있다.
세 번째 예로 이번에는 vars.inv에 있는 ubuntu 그룹에 한해서 apt 모듈을 이용해서 git을 최신 버전으로 다운로드하는 명령어를 보자
--become 옵션은 사용자를 전환할 때 사용된다. 기본적으로는 root로 전환된다.