2016-02-08 24 views
6

Có cách nào để đánh giá đường dẫn tương đối trong Ansible không?Nhận thư mục gốc trong Ansible?

tasks: 
    - name: Run docker containers 
    include: tasks/dockerup.yml src_code='..' 

Về cơ bản, tôi muốn chuyển đường dẫn mã nguồn đến nhiệm vụ của mình. Nó xảy ra rằng mã nguồn là đường dẫn cha mẹ của {{ansible_inventory}} nhưng dường như không có gì để thực hiện điều đó ngoài hộp.

thông tin

---- thêm ----

cấu trúc dự án:

myproj 
    app 
    deploy 
    deploy.yml 

Vì vậy, tôi đang cố gắng để truy cập app từ deploy.yml.

Trả lời

10

Tôi vừa xem nguồn và tìm thấy bộ lọc mà tôi không biết. Quên chuỗi hoạt động trước đó, nó đơn giản này:

{{ inventory_dir | dirname }} 

Other Useful Filters


câu trả lời trước:

này nên làm điều đó:

{{ inventory_dir.split("/")[0:-1]|join("/") }} 

câu trả lời trước:

{{ inventory_dir }} có làm những gì bạn muốn không?

Cũng có sẵn, inventory_dir là tên đường dẫn của thư mục giữ file host tồn kho Ansible của

Hoặc nếu bạn có ý nghĩa bởi "thư mục cha" con đường về vai trò nhiệm vụ của bạn là trong, {{ role_path }} có thể làm lừa.

Và cuối cùng, role_path sẽ trả về tên đường dẫn của vai trò hiện tại (kể từ 1.8). Điều này sẽ chỉ hoạt động bên trong một vai trò.

Từ http://docs.ansible.com/ansible/playbooks_variables.html#magic-variables-and-how-to-access-information-about-other-hosts

+0

Xin chào, tôi đã chỉnh sửa câu hỏi một chút để hiển thị những gì tôi đang tìm kiếm. Tôi cần cha mẹ của 'inventory_dir' là một đường dẫn đầy đủ. – Pithikos

0

OK, một cách giải quyết là sử dụng một nhiệm vụ riêng biệt chỉ cho việc này:

tasks: 
    - name: Get source code absolute path 
    shell: dirname '{{inventory_dir}}' 
    register: dirname 
    - name: Run docker containers 
    include: tasks/dockerup.yml src_code={{dirname.stdout}} 

Nhờ udondan cho gợi ý cho tôi về inventory_dir.

1

Bạn có thể sử dụng {{playbook_dir}} để biết đường dẫn tuyệt đối cho sách playbook hiện tại của bạn. Đối với tôi đó là cách tốt nhất, bởi vì bạn thường biết vị trí sách của bạn.

Các vấn đề liên quan