2

I want to run an installer script with Ansible. The installer script prompts for a number of responses and requires to be run with root privileges.

Here is the essence of my Ansible task:

- expect:
  become: yes
  become_method: sudo
  command: "installer.bin"
  echo: yes
  responses:
    "Choose the appropriate installation or upgrade option.": "2"
    "Where should the software be installed?": "/opt/newsoftware/" 

I would have thought this would work, but I get the error

fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: become_method"}

If I omit "become_method", I get this error instead:

fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: become"}

My Ansible is version 2.1.1.0

Mikkel
  • 163
  • 1
  • 2
  • 8

1 Answers1

5

I think you need to write the task like:

- expect:
  become: yes
  become_method: sudo
  args:
    command: "installer.bin"
    echo: yes
    responses:
      "Choose the appropriate installation or upgrade option.": "2"
      "Where should the software be installed?": "/opt/newsoftware/" 

You could omit become_method.

Mircea Vutcovici
  • 17,619
  • 4
  • 56
  • 83
  • Thank you very much for trying to help me.This still gives me the error `"unsupported parameter for module: become_method"`. If I omit become_method, I get the error `"unsupported parameter for module: args"` – Mikkel Sep 26 '16 at 21:02
  • Sorry, my mistake. I didn't pay close enough attension to your indenting. You were right of course. My original mistake was to not have `become` at the same indentation level as `expect`. Thank you for your help! – Mikkel Sep 26 '16 at 21:10
  • Don't worry. I am still learning Ansible too. I am glad that I could help. – Mircea Vutcovici Sep 26 '16 at 21:31