티스토리 뷰
구성을 완료한 각 node들에 대해 명령어를 이용해 작업을 수행해보겠습니다.
1. Ad-hoc : Ansible 명령을 이용해 단일 작업 수행
/etc/hosts에 노드 등록 → 명령 전달을 위한 ssh 설정(key 생성) → /etc/hosts/ansible/hosts에 Inventory 설정
위 과정을 모두 마쳤다면 Ad-hoc 명령어를 통해 원하는 작업을 수행할 수 있습니다.
# ansible [hosts] [options]
구조 로, 옵션은 다음과 같습니다.
-i
인벤토리 파일 지정 (미지정 시 /etc/ansible/hosts)
-m
실행 모듈 호출
-a
뒤 인자값(명령 내용)
2. 모듈(module) 사용하기
2.1 shell module 사용
우선 shell 모듈을 사용해 linux 명령어를 쓰던 익숙한 방식으로 작업해보겠습니다.
ansible [node] -m shell -a "명령어"
ansible all -m shell -a "useradd a"
# 모든 노드에 대해 유저 a 생성
ansible all -m shell -a "echo 'abc1'|passwd --stdin a"
# 모든 노드의 유저 a에 대한 패스워드를 abc1로 생성
ansible all -m shell -a "tail -1 /etc/passwd"
# 모든 노드의 /etc/shadow 파일 내용을 조회
# 유저 a 생성한 사실을 이동할 필요 없이 ansible이 설치된 controller server에서 한 번에 확인 가능
ansible all -m shell -a "userdel -r a"
# 모든 노드에 대해 유저 a 삭제
2.2 user module 사용
같은 과정을 이번에는 user module을 사용해 진행해보겠습니다.
ansible [node] -m user -a "명령어"
ansible all -m user -a "name=a"
# 모든 노드에 대해 유저 a 생성
ansible all -m user -a "name=a update_password=always password={{'abc1'|password_hash('sha512')}}"
# 모든 노드에 대해 유저 a 생성
# 패스워드는 abc1로, sha512로 hash
ansible all -m user -a "name=a state=absent"
# 상태 코드(state)를 이용해 a 유저를 한 번에 삭제
2.3 file module 사용
파일 및 디렉토리에 관한 작업을 file 모듈을 통해 진행해보겠습니다.
ansible [node] -m file -a "명령어"
ansible web -m file -a "dest=/test mode 600"
# web 노드에 대해 /test의 권한을 600으로 변경
ansible web -m file -a "dest=/test owner=a group=a"
# web 노드에 대해 /test의 소유자를 유저 a로, 그룹도 a로 변경
ansibel web -m file -a "dest=/test state=absent"
# web 노드에 대해 /test를 삭제
*** state 파라미터
file | default, 파일 소유자/그룹/모드를 변경하는 작업 수행 |
directory | 디렉토리가 존재하지 않는 경우 생성 |
touch | 파일 생성 (linux의 touch 명령과 유사) |
hard | 하드 링크 생성 |
link | 심볼릭 링크 생성 |
absent | 삭제(심볼릭 링크도 삭제) |
이렇게 간단하고 자주 쓰이는 기본적인 모듈을 사용해 보았습니다.
이 외에도 ansible에는 아주 다양한 모듈이 있습니다.
적절한 모듈과 파라미터를 이용해 원하는 작업을 자유롭게 할 수 있도록 익히는 것이 ansible 공부의 전부입니다.
모듈들을 외울 필요는 전혀 없으며, 아래 Ansible Documentation을 참고하면 됩니다.
Introduction to ad hoc commands — Ansible Documentation
다음 포스팅에서는 이 모듈들을 가지고 Ad-hoc 명령어를 playbook으로 작성해보도록 하겠습니다.
'IaC > Ansible' 카테고리의 다른 글
[Ansible] Openshift on vSphere VM: 인프라 구축하기 #1 스위치 생성 (0) | 2023.07.07 |
---|---|
[Ansible] 구성 관리의 대표 Ansible 알아보기: 설치와 Inventory 구성 (0) | 2023.03.16 |
- Total
- Today
- Yesterday
- 클라우드 DNS 서비스
- VM Tools
- AWS
- vsphere
- Ansible
- kubernetes
- redhat
- kubectl
- VPC
- k8s
- Local Zones
- Route53 비용 정책
- 에티버스러닝
- github
- Git
- aws cli
- Vmware
- rocky9
- EKS
- RECA
- Window Server Manager
- Route53
- IAM
- Windows Server
- IAC
- ycampus
- Linux
- Azure DNS
- Google Cloud DNS
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |