[Linux]데브옵스 도구 : 엔서블 서버 환경 배치
앤서블 설치 및 설정
컴퓨터와 엔서블 사이에서는 최신 파이썬을 설치 해야합니다 .
# yum install python
엔서블을 서버에 설치하려면 extras 저장소를 추가해야합니다
#yum -y install epel-release
엔서블 설치
# yum -y install ansible
접속을할 다른 가상 호스트를 생성합니다 .
엔서블 호스트 구성
앤서블은 관리할 호스트에 대한 정보를 /etc/ansible/ 디렉터리의 hosts라는 파일에서 가져옵니다 .
연결 테스트
앤서블은 host파일에 나열된 호스트들에 연결을 시도하는데 이명령은 에드혹(add hoc) 모드라는 명령줄에서 실행됩니다 .
-m 인자는 ping 모듈을 로드해 간단한 질문을 host파일에 나열된 모든 호스트에 보내라고 명령합니다 .
# ansible all -m ping
특정 그룹 (ex / webserver) 에만 ping을 보냅니다
#ansible webservers -m ping
패스워드 없이 접속
패스워드 없이 접속을 하기위해 다음과같은 설정을 합니다 .
$ssh-keygen
$ssh-copy-id .ssh/id_rsa.pub [접속호스트]@[ip]
파일 전송
로컬 홈 디렉터리에 있는 파일을 원격호스트의 /var/www/html/ 디렉터리에 복사하는데 copy 모듈을 사용해 보겠습니다
명령어 해설
- dest는 호스트의 목적지 위치를 가르킵니다
- src 인자는 로컬의 원본파일 위치를 가르킵니다 .
# ansible webservers -m copy -a "src=/home/usera/testfile.txt dest=/var/www/html"
만약 정상적으로 처리가 이루어지지 않았다면 ansible.cfg 의 파일을 수정해야합니다
.
Destination /var/www/html Not Writable이라는 메세지는 권한이 없다는 것을 의미합니다 .
/etc/ansible/ansible.cfg 파일의 [privilege_escalation]의 주석을 해제 시킵니다 .