사용자 및 실행 가능한 ssh는 루트가 있습니다 (예상) 루트로 로그인해야합니다. Foo 사용자에게는 어떤 종류의 sudo

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

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

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



답변

으로 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에 있습니다.