[ANSIBLE] `become`의 권한상승 매커니즘, 환경변수

2025. 5. 7. 10:15·Ansible
목차
  1. ☑️ 개요
  2. ☑️ 예시
  3. 1. 환경 변수들이 하드 코딩된 프로세스인 경우
  4. 2. 사용자 계정의 환경 변수가 필요한 경우
  5. ☑️ 이유
728x90

☑️ 개요

앤서블을 사용할 때 사용자의 환경 변수를 가져가야 할 때, 그리고 변수들이 하드코딩 되어있는 경우가 있다.

☑️ 예시

1. 환경 변수들이 하드 코딩된 프로세스인 경우

쉘 스크립트 안에 변수의 값이 하드 코딩되어 들어간 경우다.

[admjwjung@test2 bin]$ cat myprocess.sh 
#!/bin/bash

readonly PROC_NAME="myprocess"
readonly JAR="myprocess.jar"
readonly EXE_OPT=""
readonly JAVA="/usr/java1.8/bin/java"
---
# 환경 변수들이 하드 코딩 된 프로세스의 경우,
- name: myprocess
  become: yes
  become_user: myansibleid
  ansible.builtin.shell: cd /appstore/mydir/myprocess/bin && ./myprocess.sh start
  args:
    executable: /bin/bash

2. 사용자 계정의 환경 변수가 필요한 경우

일반적으로 사용자의 환경 변수를 가져오거나, 특정 쉘이 다른 쉘스크립트를 실행하는 경우가 있다. 이때 ansible 계정의 환경 변수가 유지된다. 그렇기 때문에 앤서블에서 become_user에 대한 환경변수를 로드하기 위해서는 아래와 같이 해야 한다.

# 사용자 계정의 환경 변수가 필요한 경우
- name: myprocess
  become: yes
  become_user: myansibleid
  ansible.builtin.shell: |
    source ~/.bash_profile && cd /appstore/mydir/myprocess/bin && ./myprocess.sh
    # source ~/.bashrc && cd /appstore/mydir/myprocess/bin && ./myprocess.sh
  args:
    executable: /bin/bashd

 

☑️ 이유

앤서블은 기본적으로 로그인한 유저의 환경변수를 가져간다. 이유는 become의 메커니즘에 있다. 사용자 ID만 전환이 되는 것이지 사용자를 변경하는 것이 아니다.

  • SCM(ansible) → TEST2(ansible) → become(myansibleid)
    • myansibleid 계정으로 실행되더라도 환경변수는 ansible 계정의 것을 유지한다.

 

728x90

'Ansible' 카테고리의 다른 글

[Ansible] Facts 변수 초기화 타이밍 이슈 & Ansible Facts 수집 타이밍 문제  (0) 2025.01.17
  1. ☑️ 개요
  2. ☑️ 예시
  3. 1. 환경 변수들이 하드 코딩된 프로세스인 경우
  4. 2. 사용자 계정의 환경 변수가 필요한 경우
  5. ☑️ 이유
'Ansible' 카테고리의 다른 글
  • [Ansible] Facts 변수 초기화 타이밍 이슈 & Ansible Facts 수집 타이밍 문제
정주원
정주원
개인블로그
  • 정주원
    Joon.eng
    정주원
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • Linux (41)
      • Windows (0)
      • Network (4)
      • Database (0)
      • Cloud (23)
      • Docker (3)
      • Ansible (2)
      • Etc (4)
  • 블로그 메뉴

    • 링크

      • GITLAB(woni)
    • 공지사항

    • 인기 글

    • hELLO· Designed By정상우.v4.10.0
    정주원
    [ANSIBLE] `become`의 권한상승 매커니즘, 환경변수

    개인정보

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

    티스토리툴바

    단축키

    내 블로그

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

    블로그 게시글

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

    모든 영역

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

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