본문 바로가기
프로그램 개발(분석, 설계, 코딩, 배포)/100. 기타

Ansible 설치

by 3604 2023. 5. 8.
728x90

Ansible 설치

목표

CentOS 7.5에 Ansible 설치
 

 

0. Ansible 설치 요구 사항

 

Control Node

[Linux/Unix Host]
Python2 (2.7이상) or Python 3 (3.5이상)
SSH (22포트)
서버 방화벽 또는 ACL Rule 허용
 
[Windows]
최소 PowerShell 4.0이상 & .NetFramwork 4.0 이상
(3.0버전은 winRM memory hotfix 적용 필요)
WinRM (5986 포트)
서버 방화벽 또는 ACL Rule 허용
Windows 2008 R2 SP1 이상
WinRM 활성화
 
 

Managed Node

[Linux/Unix Host]
Python2 (2.6이상) or Python 3 (3.5이상)
Python 2.5이전 버전 사용하는 경우 python-simplejson 필요
SSH 인 통신 방법이 필요. 기본적으로 SFTP를 사용합니다.
사용할 수없는 경우 ansible.cfg 에서 SCP로 전환 가능
 
[Windows]
1.7 버전부터 Ansible로 관리하는 것은 가능,
Window에 Ansible을 설치해서 다른 OS 관리하는 것은 불가능
 
 

 
 

1. Python 설치

 
Ansible은 python으로 개발된 것 임으로 python 설치가 필요함.
CentOS 7.5의 경우 default로 python 2.7.5가 설치되어 있음.
python이 없는 경우 설치 필요.
 
[확인 명령어]
python --version

 

 

2. Ansible 설치

 
[명령어]
yum install -y ansible
 
만약 yum 설치 시 No package ansible available. 메세지가 나온다면
yum install -y epel-release
yum repolist
명령 이후 다시 시도.
 
[참고]
Ubuntu의 경우
apt install ansible
 

3. Ansible 설치 확인

 
[명령어]
ansible --verison

 

4. Ansible inventory host접근 확인

[Ansible로 관리하고자 하는 host에서 test계정을 생성] : managed node에서 실행
adduser ansible_test
passwd ansible_test

[생성한 user가 sudo 권한을 password 없이 사용할 수 있도록 설정] : managed node에서 실행

[Control Node에서 managed node로 ssh 접속 되는지 확인] : control node에서 실행
ssh 를 복사함.
ssh 기가 없다면 ssh-keygen 명령을 통해 생성할 수 있음.
참고 : managed node ip : 10.0.2.4
(명령어)
ssh-copy-id ansible_test@10.0.2.4 

[Inventory 파일 작성] : control node에서 실행
아래와 같이 host.ini 파일 생성.
target-host ansible_host=10.0.2.4 ansible_user=ansible_test

target-host = 서버의 이름을 정의함.
ansible_host=10.0.2.4 = ssh 접속을 위한 managed node의 ip 주소
ansible_user=ansible_test =  ssh 접속 계정
 
[ansible 정상 동작 확인] : control node에서 실행
ansible -m ping -i host.ini all

 
원격으로 붙을 때 password 입력 안하도록 설정
eval "$(ssh-agent -s)"

 

ssh-add ~/.ssh/id_rsa
 

 

 

[Ansible] Windows 10 WSL 을 이용하여 Ansible 를 써보자

출처: [Ansible] Windows 10 WSL 을 이용하여 Ansible 를 써보자 (chhanz.github.io)

MacOS 을 사용하거나 Linux laptop 을 사용하는 분들은 Ansible 을 사용하는 것에 있어 문제가 될 것이 없습니다.
OS 내부에 brew 이나 apt , yum 같은 Package manager 가 있고 Command 를 이용 할 수 있기 때문이죠.

그럼 Windows 는 사용이 불가능한 것인가?

Windows 에서는 Windows Subsystem for Linux (WSL) 을 이용하여 Command 환경을 구현해주는 기능을 활용하면 사용이 가능합니다.
아래 Link를 통해 상세한 정보를 확인 할 수 있습니다.

WSL 설치


WSL 을 설치하기 위해 제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기 > Linux용 Windows 하위 시스템 체크 > 확인을 선택합니다.


Windows Store 에서 Ubuntu 를 검색합니다.


Ubuntu 를 선택하면 위와 같이 설치를 진행 할 수 있습니다.
설치를 진행합니다.


위와 같이 설치가 완료되면, 시작 버튼을 눌러 Ubuntu 를 시작합니다.


설치가 자동으로 진행이 되며, 위와 같이 Ubuntu 에서 사용할 사용자를 생성합니다.


사용자 계정 및 비밀 번호를 입력합니다.


위와 같이 설치가 완료되면 실제 Ubuntu 시스템에 접속한 것과 같은 화면을 볼 수 있습니다.

Ansible 설치를 위해 아래 Ubuntu Command 를 사용합니다.

$ sudo apt-get updaate
$ sudo apt install ansible sshpass  << 필요시엔 `sshpass` package 도 같이 설치합니다.


위 명령을 통해 위와 같이 설치가 가능합니다.


설치가 완료되면 ansible --version 명령을 통해 정상적으로 설치 되었는지 확인합니다.


설치된 Ansible 이 정상적으로 동작하는지 확인을 위해 Inventory 를 생성합니다.


Ansible ad-hoc 을 이용하여 ping 테스트를 진행 해보았습니다.
문제 없이 작동하는 것을 볼 수 있습니다.

참고 자료

 

728x90