Sto provando a eseguire uno script python da uno script ansible. Penserei che sarebbe una cosa facile da fare, ma non riesco a capirlo. Ho una struttura di progetto come questo:Esecuzione di script Python tramite ansible
playbook-folder
roles
stagecode
files
mypythonscript.py
tasks
main.yml
release.yml
che sto cercando di eseguire mypythonscript.py all'interno di un compito in main.yml (che è un ruolo utilizzato in release.yml). Ecco il compito:
- 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
Ho anche provato ../files/mypythonscript.py. Pensavo che il percorso per ansible sarebbe stato relativo al playbook, ma immagino di no?
Ho anche provato il debug per capire dove sono nel mezzo della sceneggiatura, ma senza fortuna neanche lì.
- 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
Che stampa ".". Così utile ...
Ciò potrebbe rovinare la mia directory in cui intendo eseguire lo script python, ma suppongo di poterlo passare come parametro allo script python. Grazie! – CorayThan
Quindi basta cambiare la riga 'command' a' comando: ./ "{{role_path}}"/files/mypythonscript.py' se lo script Python deve essere eseguito da un percorso specifico (e ovviamente cambiare il 'chdir' arg al percorso che vuoi che sia) – ydaetskcoR