본문 바로가기

클라우드/앤서블(Ansible)

(28)
앤서블 Ansible 파일 모듈 / 네트워크 도구 모듈 / 패키지 모듈 / 시스템 모듈 # 파일 모듈 copy 모듈은 local(컨트롤노드)이나 remote(관리노드)머신에서 remote(관리노드) 머신으로 파일을 복사한다 dest 파일을 복사 할 목적지 src (source) 복사할 파일 local path mode 퍼미션 지정 복사 된 것을 확인 remote_src = true src가 원격이다 hi.sh가 local에 있는것이 아니라 원격에 있다. 원격에 있는 hi.sh를 복사한다 확인 한번 더 실행하면 복사되지 않는다 checksum 파일을 해시를 떠서 비교하여 변경되었는 되지 않았는지 확인한다 hello.sh 파일의 내용을 변경하면 파일이 복사가 된다 확인 (시간이 변경 되었다) backup 이미 파일이 존재하는 경우 파일을 복사하게 되면 덮어쓴다. backup=true 이전 파일..
앤서블 Ansible 명령 모듈 # Ad-hoc command의 여러가지 사용법 # 명령 모듈 명령어 모듈을 이용해 원격 시스ㅁ에 명령어를 실행 할 수 있다. 명령어 모듈은 최대한 사용하지 않는것이 좋다. apt, yum 모듈이 이미 만들어져있는데 명령어로 굳이 사용 할 필요가 없다. 모듈이 없는 경우, 모듈이 있더라도 원하는 기능이 없는경우에 커맨드를 사용한다. 모듈의 목록을 보여준다 모듈 이름을 지정하면 해당 모듈의 상세정보를 보여준다 free_form 자유양식 실제 파라미터의 이름이 아니고 자유양식, 명령어를 자유양식으로 쓴다 mgmt 그룹에 있는 모든 시스템에 hostname이라는 명령어를 실행한다 결과를 return 받게 된다 rc=0 정상 종료 AUTHOR 모듈을 만든 작성자 stableinterface 안정화 버전 EXAM..
앤서블 Ansible 구성파일 / 관리노드 연결 # 구성 파일 /etc/ansible/ansible.cfg 주석 # (샵) ; (세미 콜론) 변형된 INI 형식을 사용한다 # Ansible 구성 파일 우선 순위 1) ANSIBLE_CONFIG 환경 변수 2) 현재 디렉토리의 ansible.cfg 3) 홈 디렉토리의 ~/.ansible.cfg 4) /etc/ansible/ansible.cfg 설정 파일 /etc/ansible/ansible.cfg 설정 파일 /etc/ansible/ansible.cfg -> 홈 디렉토리의 ~/.ansible.cfg 설정 파일 홈 디렉토리의 ~/.ansible.cfg -> 현재 디렉토리의 ansible.cfg 설정 파일 현재 디렉토리의 ansible.cfg -> ANSIBLE_CONFIG 환경 변수 환경변수 unset 설정..
앤서블 Ansible AWS 동적 인벤토리 # 동적 인벤토리 클라우드 관련된 동적인 환경, 예를들어 회사에서 관리하고있는 인스턴스가 30개이고 하루에도 몇번씩 오토 스케일링을 통해 늘어났다가 줄어들었다한다 인스턴스가 늘어날때마다 텍스트 파일로 정적 인벤토리를 관리하는게 불가능하기 때문에, 동적 환경에서 현재 인벤토리의 목록을 확인 할 수 있는 인벤토리 플러그인을 사용한다 클라우드 공급자, LDAP서버, 고정관리 데이터베이스등에서 가져올 수 있다 플러그인 방식, 인벤토리 스크립트 방식이 있다 플러그인 방식은 공식적으로 클라우드의 API를 이용해 가져오는 형태이고 스크립트는 제 3 자가 직접 스크립트를 만든것이다 (느림, 추천하지 않음) # 인스턴스 생성 # 사용자 추가 ( access_key , secret_key) # AWS SDK 패키지 설치 ..
앤서블 Ansible 정적 인벤토리 # 정적 인벤토리 관리노드의 목록을 가지고 있는 파일, 인벤토리 해당되는 호스트가 없으면 앤서블로 작업을 할 수 없다. 반드시 인벤토리가 존재 해야한다 /etc/ansible/hosts가 기본 인벤토리 파일 -> 직접 사용하지 않는다 인벤토리 파일의 위치는 설정파일이 지정한다 설정파일에서 지정한 위치가 아닌 인벤토리 파일 위치를 지정하고 싶다면 -i 옵션을 사용해 지정 , 인벤토리가 있는 디렉토리를 지정해도 된다. 직접 인벤토리 파일을 작성하는것을 정적 인벤토리라고 한다. 정적 인벤토리는 INI 파일이나 YAML 파일 형식으로 구성 할 수 있는데 일반적으로 INI 형식을 많이 쓴다. INI 형식은 작성하기 쉽고 유연하다. 설정파일에 가장 많이 사용된다 # INI 파일의 형식 [ ] section : 앤서..
앤서블 Ansible 동작 원리 # 앤서블이 어떻게 구성되고 실행는되는지 보기 [ 인벤토리, 구성 파일, 연결 방법, 모듈, Ad-hoc 명령어] 1. Ad-hoc : ansible 2. Playbook : ansible-playbook 하나의 모듈은 하나의 작업으로 실행, 이 작업을 하나의 플레이라고 하는 단위로 사용, 이 플리에 모여 플레이북이 된다 Module -> Task -> Playbook 두개 다 공통적으로 설정파일과 인벤토리가 필요하다. 두가지를 설정 한 후 명령어를 이용해서 테스크를 선언한다. 모듈(미리 만들어 놓은 파이썬 코드)이 SFTP로 해당되는 관리대상이 되는 노드로 복사가 되고, 파이썬 인터프린터를 이용해 실행한다. # 앤서블 설정 파일 구성 ansible.cfg 설정파일 / hosts 인벤토리 -> 기본 설정..
앤서블 Ansible 이란? / Ansible 용어 # 앤서블 Ansible 이란? 어플리케이션, IT 인프라를 자동화 할 수 있는 IaC도구 마스터 서버가 별도로 없고, 에이전트를 사용하지 않는다 (관리 대상의 시스템에 별도의 프로그램이 설치되어 있어야 한다) 앤서블의 기본 연결 방법은 SSH이다. SSH는 항상 존재하기 때문에 별도의 프로그램을 설치 할 필요가 없다. SSH 전송방식을 이용해서 원격에 있는 프로그램들을 관리한다. # 용어 1) 제어노드 (컨트롤 노드, 컨트롤러) - control - 앤서블이 설치 된 호스트를 제어 노드라고 한다 . 앤서블을 실행한다. - ansible 명령어, ansible-playbook 명령어를 이용 해 작업한다. - python이 설치된 모든 호스트를 제어 노드로 사용할 수 있다( ansible이 python으로..
앤서블 Ansible 설치 https://docs.ansible.com/ Ansible Documentation Ansible Documentation An enterprise automation platform for the entire IT organization, no matter where you are in your automation journey docs.ansible.com Ansible 설치 Ansible 명령 쉘 자동완성 Ansible Lint 설치 sudo apt update sudo apt install -y software-properties-common sudo apt-add-repository -y -u ppa:ansible/ansible sudo apt update sudo apt install -y ..