사용자 및 실행 가능한 ssh는 루트가 있습니다 (예상)


8

SSH에서 액세스 할 수있는 한 명의 사용자 (foo라고하자)가있는 중요한 수의 호스트를 관리해야하며 권한있는 명령을 실행하려면 루트로 로그인해야합니다.

Foo 사용자에게는 어떤 종류의 sudo 권한도 없으므로 권한이있는 명령을 실행하려면 루트로 로그인해야합니다. 실제로이 작업을 수행하기 위해 expect 스크립트를 사용하고 있습니다 (ssh login foo, su를 통해 root로 로그인) Ansible로 전환하고 싶습니다. 새 사용자를 만들어 sudo 권한을 부여하거나 기본적으로 foo에 sudo 권한을 부여 할 수 있지만 Ansible에서 expect와 동일한 작업을 수행 할 수 있습니까?

ssh 연결을 foo로하고 나서 플레이 북이나 ​​모든 종류의 adhoc 명령을 루트로 실행하고 싶습니다. 나는 Ansible 문서에 대한 정보를 찾지 못했기 때문에 누군가가 이미 이런 종류의 심문을했는지 묻습니다.

답변:


13

으로 ansible, 당신은 사용할 수 있습니다 sudo또는 su:

- hosts: example.com
  gather_facts: False
  su: yes
  su_user: root
  tasks:
    - shell: whoami

명령 행에서이를 수행 할 수도 있습니다.

ansible-playbook --su --su-user=root --ask-su-pass playbook.yml

이 기능은 이 풀 요청 이후에 사용 가능 했으며 현재 1.6.6에 있습니다.


1
감사. 각 호스트마다 어떻게 다른 su 암호를 가질 수 있습니까? ansible_su_pass가 존재하지 않습니다
Arka

ansible su pass를 선택하는 방법을 찾으셨습니까?
jeremieca

1.9.4부터는 각 호스트마다 다른 암호를 사용할 수 없습니다. 그래도 다른 ssh 키를 가질 수 있습니다.
bschlueter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.