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

2025. 2. 13. 22:24·cs/ops
728x90

플레이북 실행

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를 통해 자동으로 호스트를 감지하고 목록화
728x90
반응형

'cs > ops' 카테고리의 다른 글

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 과금, 전액 환불 후기  (0) 2025.02.13
Springboot와 AWS RDS 연동하기 with DataGrip  (0) 2025.02.13
'cs/ops' 카테고리의 다른 글
  • Jenkins을 이용하여 Docker Image를 ECR로 올리기 with Github, 퍼블릭 서브넷
  • Jenkins + GitHub 프라이빗 서브넷 환경, CI 구축의 어려움
  • [Ansible] lac를 통한 클라우드 인프라 구축-1
  • [AWS] 비용 관리 실패? AWS 과금, 전액 환불 후기
lakedata
lakedata
lakedata 님의 블로그 입니다.
  • lakedata
    lakedata 님의 블로그
    lakedata
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • cs (82)
        • dev (28)
        • sec (29)
        • ops (25)
      • 자격증 (32)
        • 정보처리기사 (20)
        • 정보보안기사 (1)
        • aws dva (6)
        • aws dop (2)
      • IT서적 (27)
        • 클린아키텍처 (10)
        • 객체지향의사실과오해 (7)
        • 오브젝트 (10)
      • 코테 (42)
        • 알고리즘 (20)
        • 백준 (13)
        • 프로그래머스 (7)
  • 블로그 메뉴

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

    • github
  • 공지사항

  • 인기 글

  • 태그

    SQL
    Security
    docker
    CS
    알고리즘
    Spring
    Java
    AWS
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
lakedata
[Ansible] lac를 통한 클라우드 인프라 구축-2
상단으로

티스토리툴바