Ansible ssh como usuário e execute tem root (espera como)

8

Eu tenho que administrar um número importante de hosts onde existe apenas um usuário capaz de acessar a partir do SSH (vamos chamá-lo de foo) e, em seguida, tenho que fazer login como root para executar comandos privilegiados.

O usuário Foo não possui nenhum tipo de privilégio sudo, então sou forçado a fazer login como root para executar comandos privilegiados. Na verdade, estou usando um script de espera para fazer esse trabalho (login ssh como foo, login como root via su) e quero mudar para o Ansible. Eu sei que eu poderia criar um novo usuário e dar a ele privilégios de sudo ou basicamente dar privilégios de sudo para foo, mas é possível fazer a mesma coisa que estou fazendo com esperar com Ansible?

Gostaria de fazer a conexão ssh como foo e depois executar playbooks ou qualquer tipo de comando adhoc como root. Não encontrei nenhuma informação na documentação do Ansible sobre isso, então estou perguntando aqui se alguém já teve esse tipo de interrogatório.

Arka
fonte

Respostas:

13

Com ansible, você pode usar sudoou su:

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

Você também pode fazer isso na linha de comando:

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

Essa funcionalidade está disponível desde essa solicitação de recebimento e está presente na versão 1.6.6 atual.

dawud
fonte
1
Obrigado. Como você pode ter uma senha su diferente para cada host? ansible_su_pass exist doesnt
Arka
Você descobriu como escolher o ans pass su?
Jeremieca
A partir da versão 1.9.4, você não pode ter senhas diferentes para cada host. Você pode ter diferentes teclas ssh.
bschlueter