2015-05-10 15 views
5

Tôi đã cố gắng để tạo ra một vai trò percona trong ansible và không ở đó. Tôi sẽ không thực sự nói thất bại nhưng nó không hoạt động như kế hoạch. Dưới đây là một đoạn trích về vai tròlàm thế nào để đối phó với percona keyserver với ansible


- name: Setting up percona server apt-key 
    apt_key: 
    id=1C4CBDCDCD2EFD2A 
    keyserver=keys.gnupg.net 
    state=present 

Sau khi chạy này tôi đã kết thúc với các lỗi sau:

failed: [192.168.56.107] => {"cmd": "apt-key adv --keyserver keys.gnupg.net --recv 1C4CBDCDCD2EFD2A", "failed": true, "rc": 2} 
stderr: gpg: requesting key CD2EFD2A from hkp server keys.gnupg.net 
gpg: no valid OpenPGP data found. 
gpg: Total number processed: 0 

Như bạn thấy ansible thực hiện lệnh sau: apt-key adv --keyserver keys.gnupg.net --recv 1C4CBDCDCD2EFD2A, trong khi đó lệnh thực sự hoạt động, được thử nghiệm và được đề xuất từ ​​percona repository pageapt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A. Có một sự khác biệt trong các lệnh trước đây chỉ là --recv và sau đó là --recv-keys. Tôi không có ý tưởng làm thế nào để làm cho ansible chạy lệnh này hoặc có thể sử dụng các mô-đun lệnh ansible chính nó.

Ngoài ra còn có url này được tìm thấy trên trang tải xuống percona đến repo key có thể được sử dụng trong mô-đun apt_key thay vì máy chủ khóa.

Những gì tôi muốn biết là liệu nó có thể làm cho chạy ansible các lệnh apt_key thực tế với --recv-phím

Trả lời

3

lệnh sau đây sẽ làm việc cho bạn:

- apt_key: url=http://www.percona.com/redir/downloads/RPM-GPG-KEY-percona 
      state=present 
+0

Url là lựa chọn tôi đã cố gắng đầu tiên, nhưng lệnh là những gì tôi đã kết thúc sử dụng vì nó tự nhiên hơn khi sử dụng –

+1

@blacksensei Bạn không đề cập đến việc bạn đã sử dụng tham số url trong câu hỏi ban đầu của mình. Ngoài ra, sử dụng mô-đun "lệnh" thường là một mẫu chống khi có sẵn một mô-đun gốc. Cuối cùng, lệnh của bạn sẽ luôn luôn hiển thị trạng thái "đã thay đổi" khi bạn chạy nó, nơi mà mô đun 'apt_key' sẽ hiển thị các kết quả thay đổi/ok phù hợp nếu có điều gì đó được thực hiện. – Mxx

+0

xin lỗi vì sự hiểu lầm. Trong bài viết của tôi tôi đã cố gắng nói nó với những điều này: "Cũng có url này được tìm thấy trên trang tải xuống percona đến khóa repo có thể được sử dụng trong mô-đun apt_key thay vì máy chủ khóa." Bây giờ lệnh là một anti-pattern thực sự mới đối với tôi. Tôi sẽ tìm kiếm nhiều hơn và nếu có, chấp nhận câu trả lời của bạn đúng hơn. –

2

Các source code cho các mô-đun apt_key thấy nó xây dựng một dòng lệnh sử dụng --recv nhưng không có đề cập đến --recv-keys, do đó, nó không giống như bạn có thể sử dụng mô-đun này theo cách bạn muốn. Tôi sẽ đề xuất filing a feature request với nhóm Ansible để yêu cầu họ hỗ trợ cờ này.

Trong thời gian chờ đợi, bạn có thể gọi apt-key theo cách thủ công thông qua mô-đun lệnh. Lệnh sẽ hầu như giống hệt với những gì các kết xuất debug cho thấy:

- name: call apt_key manually 
    command: apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A 
Các vấn đề liên quan