본문 바로가기

DevOps/Ansible

[Ansible] Ansible 실습 - 구성파일 설정

https://holywat2r.tistory.com/160

 

[Linux] Ansible 실습 - 시스템 구성 및 인벤토리 설정

https://holywat2r.tistory.com/159 [Linux] Ansible 정의 앞서 다루었던 IaC의 종류중 하나인 Ansible을 다뤄보겠다. https://holywat2r.tistory.com/158 [Linux] IaC 개념 IaC개념 코드를 통한 인프라 환경 배포..

holywat2r.tistory.com

# 해당 글을 통해 Ansible 실습, 그중 인벤토리에 대해서 실습을 해보았다

# 이번 게시글은 구성파일과 AD-HOC에 대해서 알아보자


구성파일 ansible.cfg

  • 구성파일은 /etc/ansible.cfg에 구성되어있다.
  • 읽어 들이는 순서는 현재 디렉토리 -> 사용자 홈 디렉토리 -> /etc/ansible/ 디렉토리 순서로 읽어들인다
  • 즉, 현재 디렉토리에 구성된 cfg 파일을 가장 먼저 읽어들인다는 뜻이다.
  • 작업마다 사용할 고유한 설정값들을 디렉토리 하나하나에 만드는것을 권장한다.
  • 기본값은 세팅이 되어있기 때문에 원하는 특정 값들만 각각의 파일에 따로 세팅을 하면 된다.

 

ansible.cfg 구성방법 확인

  • 아래 명령어로 구성파일 생성법을 알아보자
vi /etc/ansible/ansible.cfg

# ansible을 위한 구성 파일이다. 나중에 만들 플레이북을 작성하면서 이 값을 덮어 쓸 수 있다.

# ansible을 위한 구성 파일이다. 나중에 만들 플레이북을 작성하면서 이 값을 덮어 쓸 수 있다.
# inventory = 기본값으로 설정된 인벤토리, 원하면 바꿀 수 있다.
# library module_utils 굳이 바꿀 필요는 없다. 모듈들의 위치를 정해준다
# forks = 작업 제어에서 다룰 것. 동시에 실행할 수 있는 시스템의 개수를 정해주는 부분
          우리는 host를 최대 4대만 다룰 예정이니 굳이 건들 필요가 없지만 host가 늘어난다면 수정
# sudo_user = 루트 사용자로 작업하려고 적어둔다. 바꿀일이 거의 없다
# ask_sudo_pass = sodu 접속시 패스워드를 물어볼것인가?
# ask_pass = ssh 접속시 패스워드를 물어볼것인가?

# 자동화에 걸림돌이 되는 부분이다. 호스트키를 매번 체크를 할것인가?

# ansible 접속시 원격 접속이다. 이 때 사용자를 바로 어떤것으로 할것인지? 보통 시스템은 루트사용자
  접속을 막기 때문에 특정 사용자를 따로 정할 필요가 있다. 이대로 하면 오류가 발생할 것이다.

# 원격 접속 시 루트사용자로 접속을 할 수 없으니 일반사용자로 접속을 할것이다. 
# 그렇게 된다면 일반사용자는 작업할 수 있는 것이 별로 없이니 루트사용자로 접속을 하게 한다.
# 이 때 프리빌리지를 이용하여 권한을 상승 시키는 것이다.
# become은 일반사용자로 접속을 하되 권한상승으로 작업을 하겠다는 의미이다.
# become_method = 위의 작업을 위해 sudo를 사용하겠다 ( 일일히 sudo를 사용할 수 없으니 )
# become_ask_pass=False => 이 때 패스워드는 묻지 않겠다.

 

구성파일 예시

vi ansible.cfg
[default]
inventory = group_inv
remote_user = study
ask_pass = false
host_key_checking = false # 호스트 키 필요없이 바로 

[privilege_escaltion]
become = true # 권한 상승을 사용
become_ask_pass = false # 권한 상승시 패스워드 질의 유무