목록DevOps/Ansible (4)
devops
aws의 ec2에 간단한 ping 테스트하려는데 갑자기 아래와 같은 오류가 발생했다. pem 키 권한 문제도 아닌 것이, 동일한 키로 로컬 pc에서 테스트하면 ssh 접속엔 문제가 없었다. 알고보니, 해당 서버의 pem 파일문제였던 것! 리눅스에서 파일을 생성하지 않고, 사용하던 키 파일을 전송했더니 아래와 같이 테스트가 잘된다...
Controller node에서 managed node 관리에 유용하게 사용할 수 있는 명령어 정리 (1) 실행 명령어 $ ansible [host 명] -m [모듈명] -a [Argument] (2) 옵션 -i : ansible 실행 시 사용할 인벤토리 지정 (Inventory) -l : 그룹, 호스트 지정 (Limit.subset) -m : 사용할 모듈 지정 (Module) -a : 실행할 모듈의 인자값 (Argument) -e : 추가적으로 사용할 변수 (Extra_vars) 1. managed node 디스크 용량 확인 $ ansible all -m shell -a "df -Th" 2. managed node 메모리 확인 $ ansible all -m shell -a "free -h" 3. con..
Ansible을 사용하다보면, 빈번히 삭제되고 생성되는 EC2 인벤토리를 정의하는 것이 쉽지않다. 그러나 Ansible Plugin을 활용해서 Dynamic Inventory를 활용하면 구성된 EC2를 자동으로 인벤토리에 할당하기 때문에 아주 간편하다. 기본적으로 Managed node를 관리하는 Controller node에 다음과 같은 기본설정이 필요하다. Controller node - AmazonEC2FullAccess 권한 - Managed node와 통신을 위한 키페어(.pem) - python과 boto설치 Managed node - 조회 시 사용될 tag를 설정한다. - ssh Port가 열려있어야한다. (Ansible은 ssh 프로토콜을 통해서 통신) Dynamic Inventory 생성..
지금까지 Terraform을 통해서 클라우드 인프라 리소스를 생성하고 관리했다. 그러나 Terraform은 사실상 클라우드 아키텍처를 구성하거나, 새로 생성, 변경하는데 효율적인 인프라 관리 도구다. 생성하고 나서부터, 동작 중인 서버를 효율적으로 관리, 운영하는데 사용될 수 있다. 물론 Terraform과 동일한 기능이 있으나, 이미 생성된 인프라에 application을 구성하고 배포, 관리하는데 아주 효과적이다. 그래서 Terraform과 Ansible은 통합되어 상호보완적으로 활용될 수 있다고 생각한다. Ansible Ansible은 크게 Control Node와 Managed Node로 나뉜다. Python 베이스로 작동하며, Control과 Managed Node 모두 Python이 기본적으로..