Назад | Перейти на главную страницу

Ansible playbook: url возвращает 404 с модулем apt-key при работе вручную (браузер или wget)

Кто-нибудь может сказать мне, почему этот старый ключ работать для меня с 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"
}

Задний план:

Я автоматизирую настройку персональных компьютеров из практических соображений, а также чтобы больше узнать об Ansible и Ansible-playbooks.

Спасибо!

В решении использовался более полный адрес.

Мне был предоставлен исходный URL:

https://build.opensuse.org/projects/home:jgeboski/public_key

Работает:

https://build.opensuse.org/projects/home:jgeboski/public_key.pub

Вы можете запустить playbook с -vvv вариант, который даст вам больше подсказок о том, что пошло не так, а другой вариант - добавить validate_certs: no к задаче name: "Install purple-facebook: key" который проигнорирует проверку сертификата.