2015-06-12 17 views
9

Tôi đang sử dụng không thể kiểm tra ứng dụng web của mình trên các phiên bản web EC2. Mã của tôi như sau:Mô-đun git ansible không kiểm tra chi nhánh

- name: Checkout the source code 
    git: 
    accept_hostkey=yes 
    depth=5 
    dest={{ webapp_dir }} 
    force=yes 
    key_file=/var/tmp/webapp_deploy_key 
    [email protected]:MyRepo/web-app.git 
    update=yes 
    version={{ webapp_version }} 
    register: git_output 

Miễn là webapp_version = master nó hoạt động hoàn hảo. Nhưng ngay sau khi tôi đặt một SHA1 hoặc tên chi nhánh nó sẽ thất bại.

TASK: [webapp | Checkout the source code] 
************************************* 
failed: [52.17.69.83] => {"failed": true} 
msg: Failed to checkout some-branch 

Khá lạ.

tôi sử dụng:

› ansible --version 
ansible 1.9.1 
    configured module search path = None 

Trả lời

7

Và một lần nữa, tôi sẽ trả lời một trong những câu hỏi của riêng tôi. depth=5 là kẻ giết người. Cũng đừng sử dụng nó nếu bạn muốn có quyền truy cập vào tất cả các phiên bản khác nhau của bạn;)

+4

Đối với bất kỳ ai khác đến đây, tôi phải xóa thuộc tính 'depth' và sau đó' rm -rf' toàn bộ thư mục git của tôi trước khi nó hoạt động. –

+0

Cảm ơn @WindUpToy! Điều này đã làm công việc! – wegginho

+0

, độ sâu không thực sự là vấn đề trừ khi bạn muốn thanh toán các chi nhánh khác nhau tại đó. trong trường hợp của tôi loại bỏ src và chạy lại là đủ, có hoặc không có chiều sâu. –

-2

này không có gì để làm với git. YAML của bạn sai (tôi ngạc nhiên là nó không cung cấp cho bạn một lỗi phân tích cú pháp). Bạn có thể phải viết nó như thế này:

- name: Checkout the source code 
    git: > 
    accept_hostkey=yes 
    depth=5 
    dest={{ webapp_dir }} 

tức là với một > sau git:, mà nói YAML để nối những dòng sau vào một dòng duy nhất, hoặc như thế này:

- name: Checkout the source code 
    git: 
    accept_hostkey: yes 
    depth: 5 
    dest: "{{ webapp_dir }}" 

tức là sử dụng dấu hai chấm thay vì các dấu bằng. Trong trường hợp này, các dấu ngoặc kép quanh {{ webapp_dir }} là quan trọng (xem ansible's documentation about this issue).

+1

Tôi biết về vấn đề báo giá. Ngoài ra các> là không cần thiết như 100 nhiệm vụ tôi đã viết tất cả các công việc hoàn hảo mà không có>. Thanh toán này hoạt động nên không phải lỗi cú pháp theo tôi. Nó chỉ không hoạt động khi tôi chỉ định một nhánh thay vì master. Nhưng để giải trí tôi đã thử bạn gợi ý và nó đã đưa ra cùng một vấn đề. Vì vậy, tôi có thể kết luận đó không phải là lỗi cú pháp. – gtheys

0

Đây là giá trị của webapp_version trong tệp cấu hình có thể là thủ phạm. Tôi đã sử dụng nó trong thời trang này và kiểm tra mã nó hoạt động cho cả hai giá trị master và release/1.0.

- name: Checkout the source code 
    git: 
     dest=/tmp/dump 
     force=yes 
     key_file=ghtest 
     [email protected]:Myrepo/test.git 
     update=yes 
     version='release/1.0' 
    register: git_output 
+1

Tôi đã cố gắng làm điều đó rõ ràng giống như bạn trước đây không hoạt động. Tôi có thể thấy rằng không có chi nhánh nào trên máy chủ bên cạnh chủ .... – gtheys

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