Ansible 설치
Ansible은 Wokrstation 즉, 컨트롤러 서버에만 설치를 해주면 된다.
먼저 epel yum repository를 추가해 준다.
$ yum install -y epel-release
epel repository가 정상적으로 추가됐는지 repo 목록을 체크한다.
$ yum repolist
yum을 통해 ansible 설치
$ yum install -y ansible
$ ansible --version #ansible 설치 확인
SSH key 생성
Ansible은 SSH 접속을 기반으로 원격 서버들에게 명령을 전달.
Workstation (Controller 서버)와 원격 서버 간 SSH Key를 공유하여야 한다.
Workstation에서 모든 작업을 할 수 있으므로 여기서 ssh key를 하나 생성한다.
생성된 key를 원격 서버에 복사
*중간에 원격 서버의 계정 비밀번호를 입력해야 함
$ ssh-copy-id [원격서버계정 ID]@[원격서버 IP]
ssh key 복사 후 Controlelr 서버에서 원격 서버로 ssh 접속을 시도를 하게 되면 비밀번호 입력 없이 바로 접속이 가능하게 된다.
inventory(인벤토리) 파일 작성
/etc/ansible/hosts #inventory file
위 파일을 열어 원격 서버의 IP를 작성해줘야 한다.
$ vi /etc/ansible/hosts
inventory 목록에 있는 서버들로 정상 접속이 되는지 확인
$ ansible all -m ping
위처럼 모든 원격 서버 목록이 SUCCESS가 나오면 Ansible 사용을 위한 설치와 초기 설정이 모두 완료된 것이다.
Ansible 명령
간단 기능 체크를 위한 명령어 입력 실습 (playbook X)
Ansible 명령 구조
$ ansible [host || host 그룹] options
[host or host 그룹]에 ansible 명령을 전달한 원격 서버들을 설정
'all'을 사용할 시 inventory에 적혀있는 모든 원격 서버에 명령을 전달
'-m' 옵션은 가장 많이 사용되는 옵션 중 하나로,
ansible에서 실행할 모듈을 불러오는 옵션이다.
*모듈마다 필요한 인자 값들이 다르기 때문에 실행할 때마다 확인을 해주면 된다.
Controller 서버에 ansibleTest1.txt 파일을 생성한 뒤 이 파일을 ansible을 통해 원격 서버에 복사를 할 것이다.
우선 아래 명령을 수행하면 된다.
$ ansible all -m copy -a "src=ansibleTest1.txt dest=~/ansibleTest1.txt"
host 값에 all을 넣어 inventory에 있는 모든 원격 서버에 명령을 전달하였고
copy라는 모듈을 불러와 파일 복사 명령을 수행하였다.
'-a' 옵션은 copy 모듈에 필요한 인자 값을 전달하는 옵션으로, src file 경로와 dest file 경로를 전달해 주었다.
Controller 서버에서 명령을 수행하면 나오는 결과 화면
'DevOps > ANSIBLE' 카테고리의 다른 글
1. Ansible(앤서블) 개념 (1) | 2023.12.04 |
---|