'2020/08/14'에 해당되는 글 2건

  1. 2020.08.14 [Ansible] Elasticsearch + Docker Compose 구성 시 vm.max_map_count 이슈.
  2. 2020.08.14 [Ansible] apt lock 문제.

[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
:

[Ansible] apt lock 문제.

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

ansible 을 이용해서 서버에 필요한 stack 들을 설치 해야 하는 경우 아래와 같은 에러가 발생 할 때가 있습니다.

 

[에러]

...중략...

E: Could not get lock /var/lib/dpkg/lock

...중략...

정리 하면 다른 프로세스가 이미 사용중이기 때문에 사용할 수 없다는 뭐 그런 이야기 입니다.

그렇다 보니 ansible 배포가 실패 하게 되는데요.

 

이를 해결 하기 위해서 wait_for 나 process check 나 retry 등 다양하게 해봤는데, 그나마 아래 코드가 제일 잘 동작해서 올려 봅니다.

 

[해결]

- name: Apt lock check
  apt: name=build-essential state=present
  register: apt_state
  until: apt_state is success
  delay: 30
  retries: 10

 

: