[Ansible] Elasticsearch + Docker Compose 구성 시 vm.max_map_count 이슈.

Cloud&Container/IaC 2020. 8. 14. 14:36

vm.max_map_count 설정은 host 서버에 해주시면 문제는 해결 됩니다.

다만, 이를 수동으로 하면 아무 의미 없겠죠.

 

자동으로 구성 하기 위해서 terraform + ansible 사용 하는 건데 수동으로 할 거면 ....

 

처음에는 init.sh 라는 스크립트 안에서 처리 하도록 했습니다.

- name: Run a script with arguments
  script: init.sh

init.sh 에는 아래 코드가 들어가 있습니다.

sudo sysctl -w vm.max_map_count=262144

 

이렇게 했으면 당연히 elasticsearch 를 실행 시켰을 때 문제가 없을 줄 알았는데, 적용이 안되었는지 오류가 발생했습니다.

그래서 ansible 에 명령어를 추가 해서 문제를 해결했습니다.

- name: set vm.max_map_count
  shell: sudo sysctl -w vm.max_map_count=262144

 

$ ansible-playbook 해 보면 아래와 같은 warning 메시지가 나오는데요.

Consider using 'become', 'become_method', and 'become_user' rather than running sudo

 

- name: become parameters
  become: yes
  become_method: sudo
  become_user: ubuntu 

이렇게 넣어서 사용하라는 이야기 입니다.

 

[수정]

- name: set vm.max_map_count
  become: yes
  become_method: sudo
  shell: sysctl -w vm.max_map_count=262144
: