Question:
I’m trying to run a python script from an ansible script. I would think this would be an easy thing to do, but I can’t figure it out. I’ve got a project structure like this:
1 2 3 4 5 6 7 8 9 |
playbook-folder roles stagecode files mypythonscript.py tasks main.yml release.yml |
I’m trying to run mypythonscript.py within a task in main.yml (which is a role used in release.yml). Here’s the task:
1 2 3 4 5 6 7 |
- name: run my script! command: ./roles/stagecode/files/mypythonscript.py args: chdir: /dir/to/be/run/in delegate_to: 127.0.0.1 run_once: true |
I’ve also tried ../files/mypythonscript.py. I thought the path for ansible would be relative to the playbook, but I guess not?
I also tried debugging to figure out where I am in the middle of the script, but no luck there either.
1 2 3 4 5 6 7 8 9 10 11 |
- name: figure out where we are stat: path=. delegate_to: 127.0.0.1 run_once: true register: righthere - name: print where we are debug: msg="{{righthere.stat.path}}" delegate_to: 127.0.0.1 run_once: true |
That just prints out “.”. So helpful …
Answer:
try to use script directive, it works for me
my main.yml
1 2 3 4 |
--- - name: execute install script script: get-pip.py |
and get-pip.py file should be in files in the same role