#docker #ansible #ubuntu-16.04
#docker #ansible #ubuntu-16.04
Вопрос:
Я написал ansible playbook для установки docker в Ubuntu 16.04 LTS. При запуске ansible playbook я получаю ошибку apt-get update
Я попытался запустить прилагаемый код playbook.
- hosts: docker
become: yes
become_user: root
tasks:
- name: apt-get update
shell: apt-get update -y
- name: Install packages to allow apt to use a repository overHTTPS
shell: sudo apt-get install -y
apt-transport-https -y
ca-certificates
curl
gnupg-agent
software-properties-common
- name: Add Docker’s official GPG key
shell: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- name: Use the following command to set up the stable repository
shell: add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"
- name: apt update
shell: apt-get update -y
- name: Installing the docker 17.03.0
shell: apt-get install docker-ce=18.06.1~ce-3-0~ubuntu -y
Перед установкой docker я пытаюсь обновить сервер Ubuntu, но получаю сообщение об ошибке ниже
TASK [apt update] **************************************************************
fatal: [localhost]: FAILED! => {"changed": true, "cmd": "apt- get update -y", "delta": "0:00:12.338257",
"end": "2019-04-02 11:58:13.377956", "failed": true, "rc": 100, "start": "2019-04-02 11:58:01.039699",
"stderr": "W: The repository 'https://download.docker.com/linux/ubuntu\ xenial Release' does not have
a Release file.nE: Failed to fetch https://download.docker.com/linux/ubuntu\/dists/xenial/\/binary-
amd64/Packages 404 Not FoundnE: Some index files failed to download. They have been ignored, or old
ones used instead.", "stdout": "Hit:1 http://us- east1.gce.archive.ubuntu.com/ubuntu xenial InReleasenH
it:2 http://us-east1.gce.archive.ubuntu.com/ubuntu xenial- updates InReleasenHit:3 http://us-east1.gce.
archive.ubuntu.com/ubuntu xenial-backports InReleasenHit:4 http://archive.canonical.com/ubuntu xenial
InReleasenHit:5 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial InReleasenHit:6 http://securit
y.ubuntu.com/ubuntu xenial-security InReleasenIgn:7 https://download.docker.com/linux/ubuntu\ xenial
InReleasenIgn:8 https://download.docker.com/linux/ubuntu\ xenial ReleasenIgn:9 https://download.dock
er.com/linux/ubuntu\ xenial/\ amd64 PackagesnIgn:10 https://download.docker.com/linux/ubuntu\ xenia
l/\ all PackagesnIgn:11 https://download.docker.com/linux/ubuntu\ xenial/\ Translation- en_USnIgn:1
2 https://download.docker.com/linux/ubuntu\ xenial/\ Translation-ennIgn:13 https://download.docker.c
om/linux/ubuntu\ xenial/stable amd64 PackagesnIgn:14 https://download.docker.com/linux/ubuntu\ xenia
l/stable all PackagesnIgn:15 https://download.docker.com/linux/ubuntu\ xenial/stable Translation- en_U
SnIgn:16 https://download.docker.com/linux/ubuntu\ xenial/stable Translation-ennIgn:9 https://downlo
ad.docker.com/linux/ubuntu\ xenial/\ amd64 PackagesnIgn:10 https://download.docker.com/linux/ubuntu
xenial/\ all PackagesnIgn:11 https://download.docker.com/linux/ubuntu\ xenial/\ Translation-en_US
nIgn:12 https://download.docker.com/linux/ubuntu\ xenial/\ Translation-ennIgn:13 https://download.d
ocker.com/linux/ubuntu\ xenial/stable amd64 PackagesnIgn:14 https://download.docker.com/linux/ubuntu
xenial/stable all PackagesnIgn:15 https://download.docker.com/linux/ubuntu\ xenial/stable Translati
on-en_USnIgn:16 https://download.docker.com/linux/ubuntu\ xenial/stable Translation-ennIgn:9 https:/
/download.docker.com/linux/ubuntu\ xenial/\ amd64 PackagesnIgn:10 https://download.docker.com/linux/
ubuntu\ xenial/\ all PackagesnIgn:11 https://download.docker.com/linux/ubuntu\ xenial/\ Translatio
n-en_USnIgn:12 https://download.docker.com/linux/ubuntu\ xenial/\ Translation-ennIgn:13 https://dow
nload.docker.com/linux/ubuntu\ xenial/stable amd64 PackagesnIgn:14 https://download.docker.com/linux/
ubuntu\ xenial/stable all PackagesnIgn:15 https://download.docker.com/linux/ubuntu\ xenial/stable Tr
anslation-en_USnIgn:16 https://download.docker.com/linux/ubuntu\ xenial/stable Translation-ennIgn:9
https://download.docker.com/linux/ubuntu\ xenial/\ amd64 PackagesnIgn:10 https://download.docker.com
/linux/ubuntu\ xenial/\ all PackagesnIgn:11 https://download.docker.com/linux/ubuntu\ xenial/\ Tra
nslation-en_USnIgn:12 https://download.docker.com/linux/ubuntu\ xenial/\ Translation-ennIgn:13 http
s://download.docker.com/linux/ubuntu\ xenial/stable amd64 PackagesnIgn:14 https://download.docker.com
/linux/ubuntu\ xenial/stable all PackagesnIgn:15
Комментарии:
1. Команда оболочки в
add-apt-repository
для добавления репозитория docker выглядит немного сломанной. Можете ли вы упростить эту строку (удалить конечные обратные косые черты, поместить все в одну длинную строку) и повторить попытку. Вы также можете распечатать сообщение отладки с командой, которая выполняется, чтобы убедиться, что она правильная.2. @Augusto, я удалил конечные обратные косые черты и поместил все в одну длинную строку, но я получаю ту же ошибку.
Ответ №1:
У вас много ошибок в ваших командах оболочки:
- 2
-y
в вашейapt-get install
команде - сочетание
"
в ваших командах оболочки
Но что более важно, вам следует избегать использования shell
модуля, когда существует модуль, выполняющий эту работу, и в вашем случае вы можете использовать 3 модуля:
Должно сработать что-то вроде:
- hosts: docker
become: yes
tasks:
- name: Update repositories cache and install packages
apt:
name: apt-transport-https ca-certificates curl gnupg-agent software-properties-common
update_cache: yes
- name: Add Docker PGP key
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Add docker apt repository
apt_repository:
repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu ... stable"
state: present
- name: Update repositories cache and install packages
apt:
name: docker-ce
update_cache: yes
Комментарии:
1. Я последовал вашим предложениям. При запуске playbook я снова получаю ту же ошибку apt-get -> fatal: [localhost]: СБОЙ! => {«изменено»: false, «сообщение об ошибке»: «Не удалось обновить кеш apt: E: загрузить репозиторий». docker.com/linux/ubuntu \ bionic Release’ не имеет файла выпуска., W: Обновление из такого репозитория не может быть выполнено безопасно и, следовательно, по умолчанию отключено., W: Смотрите страницу руководства apt-secure (8) для создания репозитория и настройки пользователя., E: репозиторий ‘ download.docker.com/linux/ubuntu В $(lsb_release Release’ нет файла выпуска «.}
2. К ВАШЕМУ сведению. — имя: обновить apt: update_cache: да — имя: Обновить кэш репозиториев и установить пакеты apt: имя: docker-ce = 18.06.1 ~ ce ~ 3-0 ~ состояние ubuntu: присутствует
3. @CHBHARATHKUMAR Похоже, что, возможно, конфигурация репозитория неисправна или репозиторий поврежден. Работает ли то же самое для вас, если вы запускаете команды, отличные от ansible, вручную?