본문 바로가기

클라우드/앤서블(Ansible)

(28)
앤서블 Ansible 작업 제어 8 / 비동기 # 비동기 기본적으로 실행하도 있는 작업들은 동기 방식이다. task가 실행이 완료되고 다음 task가 실행될수있다. 비동기 방식이 필요한 경우가 있다. 터미널이 하나밖에 없고, 여러개의 명령어를 내리고 싶은데 어떤 명령어 실행이 오래걸릴때 백그라운드에서 실행시킨다. 오래 걸리는 작업을(wget, 배치성 task 등) 백그라운드로 놓고 다른작업을 한 후 그 작업이 필요한 경우 동기화를 시킨다. # ssh 세션 타임아웃방지 (poll>0) 데비안 계열은 세션 제한이 없는데 래드햇 계열은 세션 제한이 300초가 있다. 300초동안 아무 작업이 없으면 끊어진다. async 비동기 방식으로 실행할 타임아웃 시간 -충분히 길게 잡아준다. poll값 polling 5초마다 한번씩 확인한다(너 끝났니?). ssh세션..
앤서블 Ansible: Apache + Wordpress + MySQL 배포 3 https://daaa0555.tistory.com/382 앤서블 Ansible: Apache + Wordpress + MySQL 배포 2 https://daaa0555.tistory.com/381 앤서블 Ansible: Apache + Wordpress + MySQL 배포 1 https://daaa0555.tistory.com/351 앤서블 Ansible 플레이북 ( playbook ) / wordpress 구성하기 2 wpdeploy.yaml 더보기 -.. daaa0555.tistory.com # 역할 (roles) 표준화 된 디렉토리 및 파일 구조를 기반으로 변수, 작업, 핸들러, 템플릿 등을 구조화 하며, Ansible Artifact를 자동으로 가져올 수 있다. 또한 서비스 와 기능별로 역할을 ..
앤서블 Ansible: Apache + Wordpress + MySQL 배포 2 https://daaa0555.tistory.com/381 앤서블 Ansible: Apache + Wordpress + MySQL 배포 1 https://daaa0555.tistory.com/351 앤서블 Ansible 플레이북 ( playbook ) / wordpress 구성하기 2 wpdeploy.yaml 더보기 - name: MySQL Deployment hosts: 192.168.200.102 tasks: - name: Ins.. daaa0555.tistory.com # 블록 play와 task의 중간 단계에 있는 논리적인 작업 그룹, 논리적으로 작업을 그룹으로 묶는다. 더보기 devops@control:~/wp$ cat wordpress.yaml - name: MySQL Deployment ho..
앤서블 Ansible: Apache + Wordpress + MySQL 배포 1 https://daaa0555.tistory.com/351 앤서블 Ansible 플레이북 ( playbook ) / wordpress 구성하기 2 wpdeploy.yaml 더보기 - name: MySQL Deployment hosts: 192.168.200.102 tasks: - name: Install MySQL Package apt: update_cache: true name: mysql-.. daaa0555.tistory.com 위의 Ansible playbook을 기반으로 변수, 작업제어등을 추가하여 더 효율적이고 깔끔하게 정리한다. # 변수 시스템이 항상 같은 구성을 가지지 않고 경우에 따라 다른 구성을 가져야 할 수 있기 때문에 변수를 선언하여 시스템 간 차이를 처리한다. 더보기 devops@..
앤서블 Ansible 작업 제어 6 / 작업 오류 처리 # 작업 오류 처리 앤서블에서는 return code (rc) 가 0이어야만 정상적으로 실행이 되었다고 판별한다. 리턴코드가 0이 아니거나 작업에서 오류를 수신하면 해당 호스트에서 해당 작업 및 후속 작업을 중지하고 다른 호스트가 있다면 다른 호스트에서 작업을 계속 실행한다. 그러나 드문경우 rc가 0이 아니어도 정상적으로 작동한것일수있다. 오류를 처리하는 방법이 여러가지 있다. # 실패한 명령 무시 명령 (command 모듈) 작업이 실패하더라도 ignore_errors 키워드로 무시할 수 있다. 리턴코드가 0이 아니라도 다음작업으로 넘어간다. # 연결 할 수 없는 호스트 무시 ssh연결이 안되어 관리노드에 연결 할 수 없는 unreachable 상태인 경우 ignore_unreachable 키워드로 ..
앤서블 Ansible AWX https://github.com/ansible/awx GitHub - ansible/awx: AWX Project AWX Project. Contribute to ansible/awx development by creating an account on GitHub. github.com # AWX 웹 기반 사용자 인터페이스를 (web base user interface) 제공하는 Ansible 앤서블은 레드햇이 소유권을 가지고 있다. CLI Command는 별도로 유료 버전은 없는데 기본적으로 레드햇에서 Ansible Tower라는 제품의 오픈소스가 AWX 이다. 플레이북을 실행하고 모니링하는데에 웹 인터페이스를 사용한다. # AWX의 특징 - 실시간 작업 모니터링 - 역할 기반 접근 제어 (RBAC) ..
앤서블 Ansible 작업 제어 5 / 블록 # 블록 play와 task의 중간 단계에 있는 논리적인 작업 그룹 논리적으로 작업을 그룹으로 묶는다. 조건문, 권한 상승과 같은 여러가지 키워드를 적용 할 수 있다. (반복문x) 블록으로 묶어놓은 작업에 오류가 있으면 대응해주는 예외처리기능이 있다. # 작업의 그룹화 더보기 tasks: - name: Install, configure, and start Apache block: - name: Install httpd and memcached yum: name: - httpd - memcached state: present - name: Apply the foo config template template: src: templates/src.j2 dest: /etc/foo.conf - name: Star..
앤서블 Ansible 작업 제어 4 / 위임 # 위임 하나의 플레이를 실행 할 때 플레이에서 실행 할 호스트, 플레이를 실행 할 작업(task)이 있다. 작업들은 별도로 설정하지 않는 한 호스트에 실행이 된다. 위임(delegation)은 호스트에 정의 되어있는 여러 작업들중에 일부분의 작업을 다른 호스트에서 실행할수 있다. # 위임 할 수 없는 모듈 include / add-host /debug 모듈은 항상 제어노드에서 실행된다. # 작업의 위임 로드밸런서가 있고 웹서버가 두개 있다. 웹서비스를 구성, 업데이트하는 기능을 가진 플레이북을 만든다. 웹서비스를 24/7 무중단서비스를 해야한다. 클라이언트는 로드밸런서로 계속 요청하고 로드밸런서의 백엔드에 구성되어있는 두개의 시스템으로 분산시켜준다. web1번 작업도중에 웹서비스가 실행될수 없다(웹서비..