[Ansible] lac를 통한 클라우드 인프라 구축-2

2025. 2. 13. 22:24·IT/cloud
목차
  1. 플레이북 실행
  2. 구성파일
  3. 권한 상승
  4. 인벤토리 파일
  5. 중첩 그룹
  6. 범위 지정
  7. 인벤토리 파일 위치 재정의
  8. 동적 인벤토리

플레이북 실행

3가지 유형의 파일

  • 구성파일
  • 인벤토리 파일
  • 플레이북 파일

구성파일

구성파일: Ansible의 동작방법을 설정하는 파일
기본위치 /etc/ansible/ansible.cfg

기본적으로 구성 파일은 /etc/ansible/ansible.cfg에 위치하지만, 일반적으로 프로젝트별 작업 디렉토리를 생성해 해당 디렉토리에서 구성 파일을 관리합니다.

기본 인벤토리 파일

[defaults]
inventory = ./inventory
remote_user = user
ask_pass = false

[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false #기본값 

다음은 각 행에 대한 설명입니다. (중요!!!!)

  • [defaults] : 섹션이름. 기본적인 내용을 설정
    • inventory : 인벤토리 파일의 경로를 지정
    • remote_user : 관리 호스트에 ssh 연결할 때 사용할 사용자 이름 지정. 지정하지 않았을 경우 현재 사용자의 이름이 지정 (=ansible user)
    • ask_pass : 관리호스트에 ssh 연결할 때 암호를 묻는 메세지 표시 여부를 지정 (false면 바로 설치 가능)
    • become : 연결 후 관리 호스트에서 자동으로 사용자를 전환할지의 여부를 지정
      (일반적으로 root 로 전환)
    • become_method : 사용자 전환 방식을 지정. (일반적으로 기본값 sudo 를 사용, su 는 옵션)
    • become_user : 관리 호스트에서 전환할 사용자를 지정(일반적으로 기본값인 root )
    • become_ask_pass : become_method 매개 변수에 대한 암호를 묻는 메시지 표시여부를 지정[privilege_escalation] : 권한 상승을 위한 사용자 전환 설정

ansible.cfg 구성

vi ansible.cfg

ansible config list #목록

권한 상승

ansible_user ALL=(ALL) NOPASSWD:ALL

Ansible 구성 파일의[privilege_escalation] 섹션에 설정

구성 파일에 become = true 매개 변수를 설정

인벤토리 파일

  • 정적
  • 동적
vi inventory

호스트 명 혹은 IP주소를 한줄에 입력
호스트 그룹을 지정

그룹에 포함하지 않는 것은 맨 위에 지정
맨 아래에 지정하면 마지막 그룹에 편성

serverd # 그룹 지정 X

[seoul]
servera

[busan]
serverb
serverc

[dev]
serverc

[prod]
servera
serverb

serverd #prod 그룹

all : 모든 호스트 목록을 포함하는 그룹 - ungrouped : 인벤토리에서 그룹에 속하지 않는 모든 호스트 목록

중첩 그룹

[dev]
web1.test.com
web2.test.com

[prod]
web3.test.com
web4.test.com

[web-servers:children]
dev
prod

호스트 그룹 이름 생성 시:children 접미사를 추가, 그룹을 멤버로(상속)
: web1,web2,web3,web4 다 실행

범위 지정

[처음값:마지막값]
  • 192.168.[4:7].[0:255] → 192.168.4.0 ~ 192.168.7.255 범위의 모든 IP 주소
  • server[01:20].example.com → server01.example.com 부터 server20.example.com 까지 모든 호스트
  • [a:e].dns.example.com → a.dns.example.com 부터 e.dns.example.com 까지의 호스트

모든 호스트 한 줄로 표현 가능

 

인벤토리 파일 위치 재정의

ansible 명령어의 -i 인자는 인벤토리 파일의 기본위치가 아닌 사용자가 원하는 파일로 대체하는 옵션

ansible -i ./inventory

사용자는 앤서블 구성파일의 defaults 섹션에서 인벤토리 파일의 위치를 정의

[defaults]
inventory = ./inventory

동적 인벤토리

실행 가능한 스크립트 파일들

  • 프로바이더 스크립트와 CLI를 통해 자동으로 호스트를 감지하고 목록화

'IT > cloud' 카테고리의 다른 글

서브도메인을 사용하기 위해 Route 53, CloudFront, S3, ACM 설정하기  (0) 2025.02.17
Jenkins을 이용하여 Docker Image를 ECR로 올리기 with Github, 퍼블릭 서브넷  (0) 2025.02.14
Jenkins + GitHub 프라이빗 서브넷 환경, CI 구축의 어려움  (0) 2025.02.14
[Ansible] lac를 통한 클라우드 인프라 구축-1  (0) 2025.02.13
[AWS] 비용 관리 실패? AWS 200만원 과금, 전액 환불 후기  (0) 2025.02.13
  1. 플레이북 실행
  2. 구성파일
  3. 권한 상승
  4. 인벤토리 파일
  5. 중첩 그룹
  6. 범위 지정
  7. 인벤토리 파일 위치 재정의
  8. 동적 인벤토리
'IT/cloud' 카테고리의 다른 글
  • Jenkins을 이용하여 Docker Image를 ECR로 올리기 with Github, 퍼블릭 서브넷
  • Jenkins + GitHub 프라이빗 서브넷 환경, CI 구축의 어려움
  • [Ansible] lac를 통한 클라우드 인프라 구축-1
  • [AWS] 비용 관리 실패? AWS 200만원 과금, 전액 환불 후기
lakedata
lakedata
lakedata 님의 블로그 입니다.
  • lakedata
    lakedata 님의 블로그
    lakedata
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • IT (33)
        • cloud (12)
        • spring (3)
        • architecture (15)
        • etc (3)
      • 자격증 (23)
        • 정처기 (16)
        • AWS DVA (6)
        • AWS DOP (1)
      • 코딩테스트 (33)
        • 알고리즘 (15)
        • 백준 (12)
        • 프로그래머스 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Java
    spring boot
    알고리즘
    AWS
    Spring
    SQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
lakedata
[Ansible] lac를 통한 클라우드 인프라 구축-2

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.