0

I use ansible 2.9.13 and ansible-runner 1.4.6

Below is my Python code:

from ansible_runner import Runner, RunnerConfig

f = open('/home/george/dev/beeops/ansible_private/keyfile', 'r')
key = f.read()
rc = RunnerConfig(private_data_dir='/home/george/dev/beeops/ansible_private',
                  playbook='test.yml',
                  inventory='127.0.0.1',
                  ssh_key=key,)
r = Runner(config=rc)
r.run()

An error occurred while I was executing this code,

  File "/home/george/venv/bops/lib/python3.7/site-packages/ansible_runner/runner.py", line 114, in run
    command = self.config.command
AttributeError: 'RunnerConfig' object has no attribute 'command'

Can someone help me see what the problem is? Thanks to all the friends who responded!

blong
  • 2,815
  • 8
  • 44
  • 110
Geroge
  • 3
  • 1

1 Answers1

0

Looks like the direct runner execution is not fully documented. When reading the code, a call to rc.prepare() should be done before calling r.run().

from ansible_runner import Runner, RunnerConfig

f = open('/home/george/dev/beeops/ansible_private/keyfile', 'r')
key = f.read()
rc = RunnerConfig(private_data_dir='/home/george/dev/beeops/ansible_private',
                  playbook='test.yml',
                  inventory='127.0.0.1',
                  ssh_key=key,)
rc.prepare()
r = Runner(config=rc)
r.run()

All this is done for you when using the helper interfaces as documented.

Abhijeet Kasurde
  • 3,937
  • 1
  • 24
  • 33
zigarn
  • 10,892
  • 2
  • 31
  • 45