티스토리 뷰

반응형

@기본적인 옵션들@

[적용될 노드들을 선택(-i 옵션)] ansible all ~~~~~

all은 /etc/ansible/hosts에 등록된 모든 노드들에게 적용. 

all 대신에 /etc/ansible/hosts 내에서 지정한 그룹명을 입력하거나

따로 노드들의 주소가 담긴 파일을 만들어 -i(--inventory-file) 파일명 all 또는 -i 파일명 호스트주소 처럼 i 옵션을 사용할 수 있다.

[암호를 물어보도록 설정 (-k 옵션)] ansible all ~~~ -k(--ask-pass)

authorized_keys를 등록하지 않은 상태라면 항상 써주어야 하는 옵션이다. 

처음 연결하려는 노드에 대해서는  ansible 노드지정 -m ping 명령어를 사용해 yes를 입력해 known_hosts_key를 받아야 한다.

[적용되는 노드들을 확인 (--list-hosts 옵션)] ansible all ~~~~ --list-hosts

이 옵션을 주면 실제로 실행되는 게 아니라 적용되는 노드들을 확인만 하기 때문에 -k 옵션을 주지 않아도 된다.

[사용하는 모듈 (-m 옵션)] ansible all -m ping ~~~~

(지정하지 않을 시)기본값은 shell이라는 모듈이다.



@모듈과 사용법@

 


[shell] 노드들에 명령 구문을 전달하고 해당 결과를 다시 반환
ansible all -m shell -a "ls -a" -k == ansible all -a "ls -a" -k

-a 옵션으로 명령 구문을 넣어준다. -a 옵션의 인자값이 한 단어일때는 큰따옴표가 필요 없지만 이 또한 명시성을 높이기 위해 넣어주는 것을 권장한다.

그리고 shell은 default로 지정되는 모듈이기 때문에 생략이 가능하다. but 명시성을 높이고 오류를 줄이기 위해 항상 넣어주는 것을 권장한다. 

 


[ping] 서버와 노드간의 통신상태 체크
ansible all -m ping -k

 

그냥 쉘에 입력하는 ping 명령어와 같지 않다.

 

ansible -i host.lst 192.168.1.101 -m ping -k  !=  ping 192.168.1.101

 


[user] 사용자를 추가/삭제/관리
ansible all -m user -a "name=username" -k

위처럼 해주면 username이라는 이름을 가진 유저를 생성한다.

-a 옵션의 인자값으로 "name=username state=absent" 주면 해당 유저를 삭제한다.



[yum] 패키지 설치
ansible all -m yum -a "name=httpd state=present" -k

httpd라는 이름의 패키지를 설치한다. state에 present 대신 absent 주면 삭제한다.

state=latest 를 주면 설치 안되어 있을 때는 설치를, 설치가 되어있을 땐 최신 버전으로 업그레이드를 해준다.



[copy] 파일을 복사. 앤서블 서버에서 노드로 파일을 전송하고자 할 때 사용
ansible all -m copy -a "src=보낼파일의위치와이름 dest=받을파일의위치와이름" -k

 


[service] 리눅스에서 제공하는 서비스들에 대한 시작/종료/재시작 등의 기능 제공
ansible all -m service -a "name=httpd state=started" -k

httpd라는 이름의 서비스를 시작하는 명령어. 헷갈리지 말아야 할 것. 설치와 삭제는 yum 모듈을 사용하고 시작/종료/재시작 등은 service 모듈을 사용한다.

yum 모듈이 yum install / yum remove 같은 거라면
service 모듈은 systemctl 같은 것



[lineinfile] 파일에 내용을 추가. 멱등성 고려.
ansible all -m lineinfile -a "path=파일의경로를포함한이름 line=추가할내용" -k

이 모듈을 사용하면

echo "추가할내용" >> 파일의경로를포함한이름 

위의 명령과는 다르게 이미 있는 내용이라면 추가되지 않아 멱등성이 유지된다.



[get_url] url을 입력해 다운받기

ansible all -m get_url -a "url=https://www.naver.com dest=저장할경로 mode=0644" -k

내려받을 파일의 권한까지 미리 지정해줄 수 있다. 

반응형