
최근 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