83 lines
3.7 KiB
Markdown
83 lines
3.7 KiB
Markdown
# exemONE Agent Installer
|
|
|
|
[현재 적용된 에이전트 버전]
|
|

|
|

|
|
|
|
현재 공개된 exemONE의 host-agent , manager-agent 인스톨러 같은 경우<br>
|
|
각각의 서버에서 인스톨러를 실행하여 설치를 하게 되어 있어, 소수의 서버일 경우에는 문제가 없지만<br>
|
|
설치를 해야하는 서버의 대수가 많을 경우 번거로우며, 각 서버에 파일 반입, 실헹을 해야하는 등 시간 낭비가 발생함<br>
|
|
이를 해결하기 위해 ansible을 통해 설치 과정을 자동으로 수행하도록 제작하였음.
|
|
|
|
# 주의 사항
|
|
리모트 서버(에이전트 배포 대상)의 기본 파이썬 버전이 3.5 이하 인 경우 정상 동작 하지 않을 수 있음 (RHEL 7 계열 이상은 동작 확인)
|
|
~~(현재 사용중인 Ansible 모듈이 최소 파이썬 3.7 요구 / 리모트 서버가 RHEL 8 이상일 경우 정상 동작)~~
|
|
내부적으로 사용하는 python과 ansible의 버전을 낮추어서 호환성을 높였으며, 내부 테스트 결과 centos 6.5 / rhel 7,8,9 계열에서 동작 확인
|
|
|
|
# 사용 방법
|
|
본 인스톨러를 사용하는 방법은 아래와 같음<br>
|
|
|
|
## inventory 작성 (inventory 파일)
|
|
```
|
|
byeonjunghun@JHMacMini exemone % vi inventory
|
|
|
|
[all:children]ㅈ
|
|
host_agent
|
|
manager_agent
|
|
|
|
[host_agent]
|
|
10.10.54.150 # host-agent를 설치할 서버 IP 입력
|
|
10.10.52.50 ansible_user=root ansible_ssh_pass=exem@23 ansible_become_pass=exem@23
|
|
10.10.52.51 ansible_user=root ansible_ssh_pass=exem@23 ansible_become_pass=exem@23
|
|
10.10.52.52 ansible_user=root ansible_ssh_pass=exem@23 ansible_become_pass=exem@23
|
|
# ansible_user : ssh 접속 유저
|
|
# ansible_ssh_pass : ssh 접속 패스워드
|
|
# ansible_become_pass : sudo 권한 사용시 패스워드
|
|
# ansible_port : 만약 ssh port가 22가 아닐 경우 해당 변수를 통하여 설정 ex) ansible_port=2222
|
|
|
|
[manager_agent]
|
|
10.10.52.50 ansible_user=root ansible_ssh_pass=exem@23 ansible_become_pass=exem@23
|
|
10.10.52.51 ansible_user=root ansible_ssh_pass=exem@23 ansible_become_pass=exem@23
|
|
10.10.52.52 ansible_user=root ansible_ssh_pass=exem@23 ansible_become_pass=exem@23
|
|
|
|
host-agent와 manager-agent 둘 모두를 설치하고 싶을 경우 예시 서버 처럼 두군대 모두 입력
|
|
```
|
|
|
|
## playbook 작성 (agent.yml 파일)
|
|
```
|
|
byeonjunghun@JHMacMini exemone % vi agent.yml
|
|
|
|
---
|
|
- hosts: all
|
|
become: true
|
|
gather_facts: true
|
|
roles:
|
|
- role: one_agent
|
|
vars:
|
|
EXEM_HOME: /tmp
|
|
RECEIVER_ADDR: 10.10.52.56
|
|
#RECEIVER_PORT: 9009
|
|
#MANAGER_RECEIVER_PORT: 9010
|
|
# port 설정이 필요할 경우 위 주석을 해제하고 설정
|
|
# RECEIVER_PORT 와 MANGER_RECEIVER_PORT 같은 경우 변수를 설정하지 않을 경우 default 값으로 각각 9009 , 9010 으로 설정 됨
|
|
host_agent_version: 3.0.21
|
|
agent_list: ['host-agent', 'manager-agent']
|
|
|
|
agent_list 부분에 설치하고자 하는 agent 목록 작성
|
|
host-agent 와 manager-agent 지원
|
|
```
|
|
|
|
## ssh key copy
|
|
```
|
|
ssh-keygen -t rsa # ansible을 실행하는 서버에 ssh key가 없을 경우 생성
|
|
ssh-copy-id user@ip # agent를 설치하고자 하는 서버에 key 등록 (ansible을 실행하는 서버도 등록)
|
|
# user 같은 경우 root 권한을 가지고 있어야 함
|
|
# inventory에 user와 pass를 입력하였을 경우 key 등록 불필요 생략 가능
|
|
```
|
|
|
|
## playbook 실행
|
|
`ansible-playbook -i inventory agent.yml` 명령어로 실행
|
|
|
|
## Docker를 통한 실행
|
|
`docker run --rm --name installer -v ./inventory:/installer/inventory -v ./agent.yml:/installer/agent.yml {빌드한 이미지}` 로 실행
|