Ansible

Ansible playbook:url 在手動工作(瀏覽器或 wget)時使用 apt-key 模組返回 404

  • January 19, 2020

誰能告訴我為什麼這個舊密鑰對我的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-keyapt-repositoryapt使用工作正常。

- 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: noname: "Install purple-facebook: key"將忽略證書驗證的任務。

引用自:https://serverfault.com/questions/995650