Tôi đang cố gắng chạy tập lệnh python từ tập lệnh không thể đọc được. Tôi nghĩ rằng đây sẽ là một điều dễ dàng để làm, nhưng tôi không thể tìm ra. Tôi có cấu trúc dự án như thế này:Chạy tập lệnh Python qua ansible
playbook-folder
roles
stagecode
files
mypythonscript.py
tasks
main.yml
release.yml
Tôi đang cố gắng chạy mypythonscript.py trong một tác vụ trong main.yml (một vai trò được sử dụng trong release.yml). Đây là nhiệm vụ:
- 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
Tôi cũng đã thử ../files/mypythonscript.py. Tôi nghĩ rằng con đường cho ansible sẽ liên quan đến playbook, nhưng tôi đoán không?
Tôi cũng đã thử gỡ lỗi để tìm ra nơi tôi đang ở giữa tập lệnh, nhưng cũng không có may mắn.
- 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
Điều đó chỉ in ra ".". Vì vậy, hữu ích ...
Điều đó sẽ làm hỏng thư mục của tôi Tôi định chạy tập lệnh python, nhưng tôi cho rằng tôi có thể chuyển đó làm tham số cho tập lệnh python. Cảm ơn! – CorayThan
Sau đó, chỉ cần thay đổi dòng lệnh 'thành' command: ./ "{{role_path}}"/files/mypythonscript.py' nếu kịch bản Python của bạn cần được chạy từ một số đường dẫn cụ thể (và rõ ràng là thay đổi 'chdir' arg đến con đường bạn muốn nó được) – ydaetskcoR