Ansible : 다른 호스트에 대해 다른 sudo 사용자 사용

Ansible : 다른 호스트에 대해 다른 sudo 사용자 사용

최근 ansible을 사용하기 시작했습니다. xyz.com 서버, unix 사용자는 xyz_user 등과 같이 다른 사용자로 응용 프로그램이 설정된 서버가 있습니다.

그래서 xyz.com의 경우,

ansible xyz.com -a 'command' -u xyz_user -K

서버에 정의된 특정 사용자에게 자동으로 sudo를 수행하도록 ansible 구성에서 sudo 사용자를 어떻게 설정할 수 있습니까?

답변1

이러한 종류의 작업에는 Ansible 플레이북을 활용할 수 있습니다.

예를 들어

--- 
- hosts: host1:host2 
  user: user1 
  sudo: yes
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade 
- hosts: host3 
  user: ubuntu
  sudo: yes 
  tasks: 
  - name: update package list 
    action: command /usr/bin/apt-get update 
  - name: upgrade packages 
    action: command /usr/bin/apt-get -u -y dist-upgrade

그것이 당신에게 효과가 있기를 바랍니다 :)

답변2

인벤토리 또는 그룹 변수를 기반으로 호스트 변수를 사용하는 것이 좋습니다. 이를 통해 호스트별 또는 호스트 그룹별로 SSH 사용자를 설정할 수 있습니다. 이 접근 방식의 장점은 플레이북에 투명하다는 것입니다. 플레이북에서는 액세스가 아닌 설치에 대해서만 걱정하면 됩니다.

호스트 및 그룹별로 사용자를 설정하는 방법에 대한 예:

[xyz]
www.xyz.com ansible_ssh_user=xyz_user

[abc]
www.abc.com

[abc:vars]
ansible_ssh_user=abc_user

그리고 이것이 나보다 훨씬 더 잘 작동하는 방법을 설명하는 문서는 다음과 같습니다.http://docs.ansible.com/intro_inventory.html

관련 정보