-
Ansible Core 설치와 Node 세팅Ansible 2021. 8. 16. 16:00
이번 포스팅은 Ansible Core 설치와 이에 필요한 Node 세팅에 대해 다룬다.
참고로 서버 환경은 AWS centos7 ec2를 이용하였으며
편의상 ansible core를 설치한 서버를 ansible server, 관리할 서버를 node라고 하겠다.
Ansible이란?
- 가장 많이 사용되는 구성관리 툴
- 이외에도 chef, salt, puppet등이 더 있는데 복잡하고 사용하기 어렵다.
- agent 설치가 필요없으며 기술적으로 복잡도가 낮다.
1. ansible core 설치하기
ansible core는 ansible-server에 설치한다.
1) ansible 설치 패키지를 다운로드할 수 있는 공간을 위해 epel-release 설치
sudo yum install epel-release -y
2) ansible 설치하기
sudo yum install ansible -y
2. Node 환경 구축하기
ansible로 접속할 node의 환경을 구축한다.
1) ansible server에서 password로 접근하기
ansible은 agent없이 ssh를 이용하여 구성관리를 하므로 노드의ssh 권한을 수정하자.
root권한으로 접속할것이므로
/etc/ssh/sshd_config에서 PermitRootLogin과 PasswordAuthentication을 둘 다 yes
마지막으로 root 계정으로 passwd 생성
2) ansible server에서 key로 접근하기
위에서 했던 설정 중 /etc/ssh/sshd_config에서 PermitRootLogin만 yes로 변경
ansible server에서 publickey를 생성한 후, 노드에게 건네준다.
ssh-keygen ssh-copy-id root@[노드의 IP]
3. 호스트와 연결 확인
처음 ansible 설치 후, ping을 보내면 host list가 empty하다는 메시지와 함께 이용가능하지 않다고 나온다.
ansible all -m ping -k
/etc/ansible/host에 호스트 IP를 추가하여 재확인한다.
sudo vi /etc/ansible/host
한번 로그인하면 그 이후로는 -k를 안 붙여줘도 된다.(뇌피셜)
(만약 퍼블릭 키를 이용하여 접속했다면 -k 옵션은 없어도 된다)
4. 설정 파일
1) 앤서블 환경 설정 파일
/etc/ansible/ansible.cfg
2) 앤서블의 호스트 정보
/etc/ansible/hosts
5. 옵션
1) -i (--inventory-file)
특정 IP만 담긴 test파일을 생성
echo "10.0.1.235" > test
특정 호스트만 명령을 내릴 때 인벤토리를 이용하여 명령을 내릴 노드를 자유롭게 조절할 수 있다.
또는 /etc/ansible/hosts에 그룹을 지정하여 사용할 수도 있다.
[nginx] 10.0.1.235
2) -m (--module-name) : 사용할 모듈을 선택
위에서 ping 모듈을 사용했는데 이는 참고로 우리가 아는 ping이 아니라
파이썬의 모듈의 ping이다.
3) -k (--ask-pass) : 패스워드를 물어본다.
4) -K(--ask-become-pass): 권리자 권한에 따른 패스워드를 물어본다.
5) --list-hosts: 적용되는 호스트를 보여준다.
초반에는 꽤 유용한 옵션이라고 한다.
반응형'Ansible' 카테고리의 다른 글
Ansible를 이용한 nfs 서버와 클라이언트 구성 (feat. CentOS) (0) 2021.08.26 Ansible를 이용한 Timezone 설정 (feat. CentOS) (0) 2021.08.26 Ansible를 이용한 nginx 설치 및 삭제 (feat. CentOS) (0) 2021.08.26 Vagrant 시작하기 (0) 2021.08.18 Ansible 기본 모듈을 사용한 노드 작업 (0) 2021.08.16