ProgramingTip

ansible 플레이 북에서 user vs sudo vs sudo_user

bestdevel 2020. 12. 5. 10:23
반응형

ansible 플레이 북에서 user vs sudo vs sudo_user


Ansible 설명서를 읽었지만 ansible 플레이 북의 세 가지 변수 인 user, sudo, sudo_user에 대해 여전히 약간의 스럽습니다.

많은 변수 조합이 다른 다음 플레이 북을 시도했습니다.

  1. 사용자 : 배치 => 작동

  2. user : deploy 및 sudo : True => git 작업에서 중단됨

  3. user : deploy, sudo : True 및 sudo_user : deploy => 작동

sudo_user는 무엇을 사용합니까? 몇 가지 다양한 조합을 언제, 왜 많이 사용합니까?

- hosts: all
  user: deploy
  sudo: True
  sudo_user: deploy

  tasks:
      - name: Ensure code directory
        file: dest=/home/deploy/code state=directory

      - name: Deploy app
        git: repo=git@bitbucket.org:YAmikep/djangotutorial.git dest=/home/deploy/code

감사합니다


  • userssh'ing하는 사용자입니다. 구성으로 ssh'ing deploy입니다.

  • sudo_usersudo: yes설정 증권 때 호스트에서 sudo하는 사용자 입니다.

나는 당신의 경우 없음 생각 그래서 sudosudo_user당신이 같은 ssh를 수있는 경우에 필요합니다 deploy.

그러나 루트로 ssh를 사용하는 경우 sudo_user: deploysudo: yes.

'sudo를'를 요청하지만 사용자를 지정하지 않으면 Ansible은 ~/.ansible.cfg( sudo_user)에 설정된 기본값을 사용하고 기본값 root.

참고 user(이 있기 때문에)는 지원되지 않습니다. remote_user대신 사용해야 합니다.

편집 : 사례 # 2 아마 때문에 ssh를 확인하는 문제의 중단 : 당신은 아마에서 bitbucket.org 호스트 ~deploy/.ssh/known_hosts가지고, 하지~root/.ssh/known_hosts

UPDATE : Ansible 2.x에서, 사용으로 become하고 become_user대신이되지 않는 sudosudo_user. 사용 예 :

- hosts: all
  user: deploy
  become: true
  become_user: deploy

  tasks:
      - name: Ensure code directory
        file: dest=/home/deploy/code state=directory

      - name: Deploy app
        git: repo=git@bitbucket.org:YAmikep/djangotutorial.git dest=/home/deploy/cod

참고 URL : https://stackoverflow.com/questions/20176957/user-vs-sudo-vs-sudo-user-in-ansible-playbooks

반응형