1.创建invertory.ini并验证连通性
- 创建invertory.ini
[docker_servers]
192.168.0.2
- 执行命令
ansible -i invertory.ini docker_servers -m ping
- 结果
192.168.0.2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"
}
docker_playbook_22">2.编写docker playbook
---
- name: Install Docker and configure Tsinghua mirrorshosts: docker_servers # 替换为你目标主机的主机名或IP地址become: yes # 使用 sudo 提权tasks:- name: Install dependenciesyum:name:- yum-utils- device-mapper-persistent-data- lvm2state: present- name: Set Docker CE repositoryget_url:url: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repodest: /etc/yum.repos.d/docker-ce.repo- name: Install Docker CEyum:name: docker-cestate: presentenablerepo: docker-ce-stable- name: Start and enable Docker serviceservice:name: dockerstate: startedenabled: yes- name: Verify Docker installationcommand: docker --versionregister: docker_versionchanged_when: false- name: Print Docker versiondebug:var: docker_version.stdout
ansibleplay_61">3. 执行ansible-play命令
ansible-play -i invertory.ini docker_install.yml
查看直接结果,输出成功结果
PLAY [Install Docker and configure Tsinghua mirrors] **********************************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************************************************************ok: [192.168.0.2]
TASK [Install dependencies] ***********************************************************************************************************************************************************************************ok: [192.168.0.2]
TASK [Set Docker CE repository] *******************************************************************************************************************************************************************************changed: [192.168.0.2]
TASK [Install Docker CE] **************************************************************************************************************************************************************************************
ok: [192.168.0.2]
TASK [Start and enable Docker service] ************************************************************************************************************************************************************************
changed: [192.168.0.2]
TASK [Verify Docker installation] *****************************************************************************************************************************************************************************
ok: [192.168.0.2]
TASK [Print Docker version] ***********************************************************************************************************************************************************************************
ok: [192.168.0.2] => {"docker_version.stdout": "Docker version 26.1.4, build 5650f9b"
}PLAY RECAP ****************************************************************************************************************************************************************************************************192.168.0.2 : ok=7 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
4.安装过程中遇到的问题
- 提示连接超时
PLAY [Install Docker and configure Tsinghua mirrors] *****************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************
ok: [192.168.0.2]
TASK [Install dependencies] ******************************************************************************************************************fatal: [192.168.0.2]: FAILED! => {"changed": false, "msg": "Failure talking to yum: failure: repodata/repomd.xml from AppStream: [Errno 256] No more mirrors to try.\nhttp://mirrors.aliyun.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found\nhttp://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttp://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30002 milliseconds')\nhttp://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttp://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttp://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30002 milliseconds')\nhttp://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttp://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.cloud.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')\nhttp://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/AppStream/x86_64/os/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')"}
PLAY RECAP ***********************************************************************************************************************************192.168.0.2 : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
问题原因:
报错中地址为http,可能已经失效,替换为https 或者删除现在的源
排查步骤:
- 查看现在已启用的源
yum repolist enabled
发现有个docker源已启用
已加载插件:fastestmirror Loading mirror speeds from cached hostfile 源标识 源名称 状态 !docker-ce-stable/7/x86_64 Docker CE Stable - x86_64 337 repolist: 337