Ansible
Ansible playbook:url 在手動工作(瀏覽器或 wget)時使用 apt-key 模組返回 404
誰能告訴我為什麼這個舊密鑰對我的
apt-key
模組有效,ansible-playbook
而這個新密鑰不能(404)?初始密鑰工作了一段時間(當我開發這些腳本時),但是當它過期(2019-12-06)時,apt 的 update_cache(正確)開始失敗,建議切換到新密鑰,但我無法獲得與
apt-key
模組一起工作。沒有 ansible-playbook 也能正常工作:
$ wget -O- https://build.opensuse.org/projects/home:jgeboski/public_key | sudo apt-key add -
.在瀏覽器中查看它們時,這兩個地址的行為似乎或多或少相同。標題有點不同。文件副檔名也是如此。
細節:
這是我腳本的相關部分。其他一些
apt-key
和apt-repository
和apt
使用工作正常。- name: "Install purple-facebook: key" become: yes apt_key: # url: https://build.opensuse.org/projects/home:jgeboski/public_key url: https://download.opensuse.org/repositories/home:jgeboski/xUbuntu_18.04/Release.key - name: "Install purple-facebook: repo" become: yes apt_repository: repo: "deb https://download.opensuse.org/repositories/home:/jgeboski/xUbuntu_18.04/ /" - name: "Install purple-facebook: package" apt: pkg: purple-facebook
如果我使用新密鑰,它將是 404。執行的所有輸出都帶有
-vvvv
標誌。fatal: [localhost]: FAILED! => { "changed": false, "invocation": { "module_args": { "data": null, "file": null, "id": null, "key": null, "keyring": null, "keyserver": null, "state": "present", "url": "https://build.opensuse.org/projects/home:jgeboski/public_key", "validate_certs": true } }, "msg": "Failed to download key at https://build.opensuse.org/projects/home:jgeboski/public_key: HTTP Error 404: Not Found" }
如果我使用舊密鑰,它首先會失敗
update_cache: yes
(這是 的預設值apt-repository
)。The full traceback is: WARNING: The below traceback may *not* be related to the actual failure. File "/tmp/ansible_apt_repository_payload_drREvW/ansible_apt_repository_payload.zip/ansible/modules/packaging/os/apt_repository.py", line 548, in main File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 559, in update raise FetchFailedException(e) fatal: [localhost]: FAILED! => { "changed": false, "invocation": { "module_args": { "codename": null, "filename": null, "install_python_apt": true, "mode": null, "repo": "deb http://download.opensuse.org/repositories/home:/jgeboski/xUbuntu_18.04/ /", "state": "present", "update_cache": true, "validate_certs": true } }, "msg": "apt cache update failed" }
背景:
出於實際原因,我正在自動化個人 PC 設置,以及了解有關 Ansible 和 Ansible-playbook 的更多資訊。
謝謝!
解決方案是使用更完整的地址。
我得到的初始網址:
https://build.opensuse.org/projects/home:jgeboski/public_key
作品:
https://build.opensuse.org/projects/home:jgeboski/public_key.pub
您可以使用選項執行劇本,
-vvv
這將為您提供更多關於出錯的線索,另一個選項是添加validate_certs: no
到name: "Install purple-facebook: key"
將忽略證書驗證的任務。