일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- docker
- cloud
- STREAM
- IntelliJ
- container
- 허브
- 캐시서버
- map
- Linux
- 액세스회선
- DevOps
- Pipeline
- Collection
- JPA
- 라우터
- LAN어댑터
- sonarQube
- tomcat
- 방화벽
- Set
- Jenkins
- 소켓
- Spring
- post
- AOP
- jdk
- gradle
- ansible
- mybatis
- Java
- Today
- Total
거북이-https://velog.io/@violet_evgadn 이전완료
Ansible Module 사용하기 본문
Ansible Server에서 Remote Host 접근 가능 여부 확인
ansible all -m ping
Ansible Server에서 /etc/ansible/hosts에 지정했던 모든 Remote Host에 접근 가능한지를 확인하는 과정이다.
Remote Host에 Ping 신호를 보냄으로써 정상적으로 Return 신호가 올 경우 Ansible Server 측에서 성공적으로 Ansible Node 측에 접근할 수 있음을 확인 할 수 있다.
Ansible을 통해 shell 명령어 수행
ansible all -m shell -a "[Shell 명령어]"
이 때 Shell 명령어를 Ansible Server 측에서 수행하는 것이 아닌 Ansible Server와 연결된 Ansible Node 측에서 Shell 명령어를 수행하는 것이다.
참고로 이 개념은 Ansible 모듈을 활용할 때 일괄적인 특징이다.
즉, 앞으로 수행할 명령어들도 Ansiber Server와 연결된 Ansible Node 측에서 동작이 수행되는 것이다.
이런 특징 때문에 위 사진처럼 /etc/ansible/hosts에 저장된 IP Address에 Shell 명령어를 수행한 이후 결과를 반환함을 볼 수 있다.
Ansible을 통해 파일 복사
ansible all -m copy -a "src=[원본 데이터] dest=[복사본이 저장될 Directory]"
여기에서 특징 2가지가 존재한다.
먼저 src 값으로 "Ansible Server에 존재하는 원본 데이터"가 입력되어야 한다는 것이다.
두 번째로 dest는 복사본의 파일 이름이 아닌 복사본이 저장될 Directory를 입력해야 한다는 것이다.
예를 들어 sample.txt 파일을 /tmp Directory에 아래에 저장하고 싶을 경우 sample.txt가 Ansible Server 측에 저장되어 있어야 하며 dest 값으로 /tmp가 입력되어야 한다.
실제로 동작하는 것을 살펴보자.
위 사진은 Ansible Node의 /tmp Directory에 존재하는 파일들을 나타낸 것이고 아래 사진은 Ansible Server의 root Direcotry에 존재하는 파일들을 나타낸 것이다.
보다시피 현재 /tmp에는 sample.txt가 존재하지 않지만 Ansible Server에는 sample.txt 파일이 존재함을 볼 수 있다.
한 번 sample.txt를 /tmp Directory에 복사해보자.
ansible all -m copy -a "src=sample.txt dest=/tmp"
명령문 수행 결과를 보고 Ansible Node 측에 변화가 생겼음을 알 수 있다.
그렇다면 우리가 원하는 결과, 즉 /tmp Directory에 sample.txt가 복사되었는지 알아보자.
성공!
패키지 설치
이외에도 많은 모듈들이 존재하지만 일단 패키지 설치까지만 실행해보도록 하자.
만약 더 많은 모듈을 활용해보고 싶다면 이전 Section에 올렸던 사이트에 접속하여 등록되어 있는 Module List 설명을 읽고 실습해보면 좋을 것 같다.
install 과정은 조금 복잡하기 때문에 실습을 진행하며 명령어를 알아보자.
참고로 설치할 패키지는 httpd이다.
1. Ansible Node 측에 패키지 설치 여부 확인
yum list installed | grep httpd
httpd가 설치되지 않았음을 알 수 있다.
2. Ansible Server에서 httpd 설치 명령어 입력
ansible all -m yum -a "name=httpd state=present"
- name : yum 명령어를 통해 처리할 패키지 이름
- state : yum 명령어를 통해 수행할 동작
- 삭제 : absent, removed
- 설치 : present, installed, latest
- present, installed : 패키지가 설치됨
- latest : 설치되어 있는 파일이 최신 버전이 아니면 최신 버전으로 Update하고 설치되지 않았을 경우 최신 버전을 설치함
우리는 httpd를 설치할 것이므로 state를 present로 지정했다.
변화가 감지되었다. Ansible Node에 httpd가 설치되었는지 확인해보자.
이전과는 다르게 httpd가 설치된 패키지 리스트에 존재함을 알 수 있다.
'CI&CD > CI&CD 자동화' 카테고리의 다른 글
Jenkins에서 Ansible Playbook 사용하기 (0) | 2022.10.26 |
---|---|
Ansible Playbook (0) | 2022.10.25 |
Ansible 개념 (0) | 2022.10.25 |
SSH Key 활용 (2) | 2022.10.25 |
Ansible Server 생성 (0) | 2022.10.24 |