• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

Ansible Log 파일의 취합에 대해서 물어보고 싶습니다.

21.01.11 13:57 작성 조회수 327

0

안녕하세요.

회사에 Ansible tower를 사용하고 있지만

ansible을 갓배우기 시작해서 이런 방법이 있는 지 문의하고 싶습니다.

Node 1~ 300번까지 있으며 모든 node를 Node 1에 특정한 곳에 특정파일을 취합을 하는 방법을 찾고 있습니다.

모듈 fetch를 이용하여 Ansible server에 취합하고 node1에 배포 할수 있는 방법이 있을 것 같긴 하지만

다른 방법 즉 1~300 node를 1 node로 취합하는 방법이 있을까요?

답변 6

·

답변을 작성해보세요.

0

아하 pull로 땡겨서 특정 서버에 consolidation 하기로 하셨군요 :) 

넵 요즘 추세가 pull을 좀 더 선호하는거 같더라고요 k8s의 영향도 없다고 할순 없을꺼 같아요 

앤서블의 방식과 반대이긴 하지만 둘다 장 단점이 있으니..

방법론을 찾으셔서 축하드립니다 ^^ 그리고 공유도 감사드려요!

0

이효원님의 프로필

이효원

질문자

2021.01.25

네..좋은 답변 감사합니다. 단발성이 아닌 주기성을 가지고 Ansible의 스케쥴 jobs을 이용하는 방법을 찾아보았고

여러 사람들과 상의해본 결과

synchronize 모듈을 이용하는 것이 제일 적합한 것으로 판단하였습니다.

예를 들면..

vars:
synchronize:
src: "/tmp/{{ fileDate }}.messages"
dest: "/tmp/{{ ansible_hostname }}_{{ fileDate }}.messages"
mode: pull

delegate_to: "XXX.XXX.XXX.XXX" <--files server

대신 rsync 패키지를 설치하거나 방화벽 오픈을 해야 하는 번거러움이 있지만 이 방법이 좋은으로 판단했습니다.

0

일단 현재 상태에서는 규칙성을 찾아야 할꺼 같아요 

전통적인 개발/스크립트/프로그래밍에서는 규칙을 코드화 하는게 일반적인거라서요 

규칙을 찾는 것을 ML/DL로 도출할 수도 있긴 한데 당연히 이건 아닌거 같고요..

따라서 아래의 사항들을 체크해야 할꺼 같아요 

1. 노드 별로 디렉터리는 같은가? (즉 운영체제의 커널 레벨이 되기도 하겠네요)

2. 노드마다 vpn이 다르다면 앤서블 서버(코어)에서 reachable한가 (아마 되겠죠?)

대략 위의 내용에 대해서 느낌만으로 정리하면 

현재 경로를 가능한 통일하고 (각 노드의 sw link 생성) 

안되는 것들은 아래와 같이 목적별(순수 예시입니당)로 구분하여  수행하거나 

hosts 파일 자체를 쪼개고 그걸 호출하는 bash shell을 짜는게 좋을꺼 같아요 

 dest=/etc/ansible/hosts
 content="
 [dev]
 192.168.1.[101:104]
 192.168.1.[201:204]

 [stage]
 172.16.n.x

 [Prod]
 10.10.n.x"

사실 로그 수집에 가장 쉬운건 syslogd에 저장소를 중앙으로 하거나...

아니면 nfs로 노출해 놓고 그걸 중앙에서 가지고 가게 하는 것도 있는데...

위의 내용만 가지고는 쉽게 얘기할수가 없네요 

일단 ansible concept 자체는 push가 기본이라 pull을 하려면 할수 있는데 그건 다른 방법이...

주기성을 가지는 작업인거 같은데 그게 또 앤서블이 맞는지 모르겠네요 

주기성을 가지지 않는다면 앤서블도 좋은 선택지일꺼 같아요. 

아무래도 이건 구조와 요구사항을 다 이해해야 좋은 답변이 나오게 될꺼 같아요. 

도움이 되시길 바랍니다. 감사합니다. 

 

0

이효원님의 프로필

이효원

질문자

2021.01.11

무리한 질문에 답변 감사합니다.^^

네..각 node들의 로그를 한 서버에 모으기 위해서 질문 한 것입니다.

공유 디렉토리는 node별로 vpn도 다르고 정책상 사용이 어려워서... Ansible로 좋은 방법이 있을까 찾아보고 있는 것입니다.

0

아 제목을 보니까..Log..? 를 모으려고 하시는걸까요?

0

안녕하세요 

교육 범주를 넘는거 같긴 한데...예외적으로 답변 드릴께요 :) 

가장 간단한 방법은 Node #1에 NFS Server등의 공유 디렉터리를 구성하고요 

나머지 Node #2-300이 거기를 mount하여 작업하도록 앤서블 플레이북을 짜시면 사용하는데 문제 없으실꺼에요 

취합이라는게 정확히 어떤건지 몰라서..Node #1에 있는걸 나머지 노드가 가져다가 쓴다 (Git repo개념?)

인거 같아서 위와 같이 답변 드려요. 

취합 또는 하시려고 하는 내용을 좀 더 정확하게 알려주시면 답변 드릴께요. 

감사합니다.