본문으로 바로가기

https://www.inflearn.com/course/ansible-%EC%8B%AC%ED%99%94

 

[심화] 앤서블(Ansible)을 깊이 있게 활용하기 - 인프런 | 강의

앤서블을 시간을 적게 들이면서, 좀 더 구조적으로 그리고 빠르게 동작하도록 만들어 봅시다. 그리고 부가적으로 보안적인 부분도 함께 알아보겠습니다., Ansible 심화 강좌 이전에 출시된 '[기초]

www.inflearn.com

 

CH 6. 성능 튜닝하기

ㅇ 성능 테스트를 위한 실습 환경 구성

 - 8GB 로 진행

ㅇ Pipelining

- 파이프라인은 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조

- 기존  (총 3번의 통신 필요)

 1. ssh 통신 : ~/.ansible/tmp 의 임시 저장 공간 생성

 2. sftp, scp, piped 통신 : 실행될 파일을 전달 (ansible-playbook )

 3. ssh 통신 : 실행

- 파이프라이닝 옵션 적용 후

 1. ssh 로 파일을 보냄과 동시에 실행

- vars:

    ansible_ssh_pipelining: true 

  로 설정

- 실습

  > node101

  # watch -n 1 "ls ~/.ansible/tmp" 로 1초마다 경로 확인

  > Server

  # ans node101 -m apt -a "pkg=tree state=present" -s

   > s는 sudo 약자

 

ㅇ Forks

- 한번에 실행하는 값

- 운영체제에서는 System Call(fork)을 통해서 하나의 프로세스에서 자식 프로세스로 분기를 의미

- pipelining을 통해 실행할때 forks = 5가 기본값으로 설정 (통로가 5개 만들어짐)

- # anp instal ~ -f 10

   => -f 10 은 fork가 10개

   => Ansible 환경설정이나 실행시 옵션으로만 설정 가능 (환경설정은 ansible.cfg 에 있음)

- 앤서블의 Serial

  > 20개 중에 몇개를 한번에 실행할 것인가?

  > serial 과 fork 잘 설명해둔것
   https://medium.com/devops-srilanka/difference-between-forks-and-serial-in-ansible-48677ebe3f36

 

 

ㅇ Async

- 동기화는 동시에 시스템을 작동시키기 위해 사건(Tasks)을 일치시키는 것

- poll = 0   => Fire and Forget

   이는 결과 값을 체크하지 않음을 의미함

   성공적인 결과를 보장하지 않음

   => 단순 명령어만 보낸거만 기록됨

 

ㅇ Strategy free

- poll 주기로 가지고 Tasks의 전체 상태를 체크하고 시작하는것이 아니라, 작업이 끝나면 바로 다음 작업을 시작함

- 파일안에

  strategy: free

 입력

- 포크 수를 늘릴수록 좋아짐

 

ㅇ Blocks

- Tasks를 가능한 최소한의 개수로 묶어서 요청하는 것

- with_items , with_flattened 로 사용

 

ㅇ Cache

- 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시에 데이터를 미리 복사해 혾으면 보다 빠른 접근 시간을 가지기 때문에 최소한의 접근 시간으로 빠른 속도로 데이터에 접근할 수 있다.

- Ansible에서는??

 > fact_caching!

  - fact를 caching 할 수 있음

  - 기본적으로 memory에 저장 => jsonfile, memcached, mongodb, yaml, redis 등으로 변경 가능

  - 방법 : ansible.cfg 에서 변경  => fact_caching = jsonfile, fact_caching_connection 에 파일명 기입,

    cache 들의 timeout(유효시간) 은 기본 하루  (86400초) 

- 캐시서버 활용하기 

  - Ansible-Server를 패키지 캐시서버로 활용하여, 노드에서 인터넷을 사용하지 않음
  - 캐시서버 만들기 참고 사이트 
  > https://www.tecmint.com/apt-cache-server-in-ubuntu/

  > https://www.solaris-cookbook.eu/linux/debian-ubuntu-install-apt-cacher-ng-as-package-proxy-for-debian-ubuntu-and-centos-fedora-clients/