1
resposta

Senha SUDO na máquina remota

Boa tarde! Como "informar" a senha SUDO do usuário no que executa o playbook na máquina remota. Estou testando o playbook do curso em uma outra estação aqui em casa e está dando erro por causa da senha do SUDO na máquina remota.

Estou executando o comando ansible-playbook provisioning.yml -u rodrigo -i hosts --private-key ~/.ssh/id_rsa Obs.: Já copiei a chave pública para a maquina remota.

O erro é o seguinte: failed: [10.16.16.53] (item=[u'php5', u'apache2', u'libapache2-mod-php5', u'php5-gd', u'libssh2-php', u'php5-mcrypt', u'mysql-server-5.6', u'python-mysqldb', u'php5-mysql']) => {"changed": false, "item": ["php5", "apache2", "libapache2-mod-php5", "php5-gd", "libssh2-php", "php5-mcrypt", "mysql-server-5.6", "python-mysqldb", "php5-mysql"], "module_stderr": "Shared connection to 10.16.16.53 closed.\r\n", "module_stdout": "sudo: a password is required\r\n", "msg": "MODULE FAILURE", "rc": 1}

1 resposta

Olá Rodrigo, tudo bem? No seu playbook você está usando a palavra reservada become? Ela faz com que o usuário que vai executar os comandos seja elevado para usuário root como explica a documentação, para usá-la você precisa apenas indicar na task como sugere a documentação:

- name: Ensure the httpd service is running
  service:
    name: httpd
    state: started
  become: yes

Outra alternativa seria indica que você deseja executar todos os comandos como root passando o ansible_become=yes no final do comando para executar o playbook.

Uma outra alternativa é passar a senha como uma variável extra no comando para executar o playbook da seguinte forma:

--extra-vars "ansible_become_password=SuaSenhaAqui"

Mas não indica essa terceira possibilidade, é recomendado usar arquivos criptografados.

Então fala pra gente qual dessa alternativas funcionou!