当前位置: 首页 > article >正文

Ansible-03 docker安装-基于centos

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"
}

2.编写docker playbook

  • 创建docker_install.yml
    touch docker_install.yml
  • 编辑docker_install.yml
---
- name: Install Docker and configure Tsinghua mirrors
  hosts: docker_servers  # 替换为你目标主机的主机名或IP地址
  become: yes  # 使用 sudo 提权
  tasks:
    - name: Install dependencies
      yum:
        name:
          - yum-utils
          - device-mapper-persistent-data
          - lvm2
        state: present
    - name: Set Docker CE repository
      get_url:
        url: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
        dest: /etc/yum.repos.d/docker-ce.repo
    - name: Install Docker CE
      yum:
        name: docker-ce
        state: present
        enablerepo: docker-ce-stable
    - name: Start and enable Docker service
      service:
        name: docker
        state: started
        enabled: yes
    - name: Verify Docker installation
      command: docker --version
      register: docker_version
      changed_when: false
    - name: Print Docker version
      debug:
        var: docker_version.stdout

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
  • 查询位置
    grep -rli "http://mirrors.aliyuncs" /etc/yum.repos.d/
  • 删除这源(这里我是整个文件删除了)
    rm -rf docker-ce.repo
    刷新缓存
    sudo yum clean all && yum makecache
  • 重新执行ansible部署命令
    ansible-play -i invertory.ini docker_install.yml

http://www.kler.cn/a/561674.html

相关文章:

  • 在线VS离线TTS(语音合成芯片)有哪些优势-AIOT智能语音产品方案
  • Hbase客户端API——语句大全
  • Solidity study
  • 二叉树-左叶子之和
  • hot100-二叉树
  • DeepSeek-DeepEP – 专为混合专家模型打造的高效专家并行通信库
  • [RH342]tcpdump
  • RPC 框架项目剖析
  • 微博的IP属地是随定位改的吗?深入解析
  • Python----数据分析(Numpy三:连接数组,分割数组,数组元素的添加和删除)
  • C++ | 面向对象 | 类
  • wifi5和wifi6,WiFi 2.4G、5G,五类网线和六类网线,4G和5G的区别
  • 嵌入式硬件篇---各种插头介绍
  • 华为交换机堆叠方法
  • Jmeter接口测试断言
  • Web自动化之Selenium execute_script函数常用JS脚本
  • kubernetes-完美下载
  • el-table
  • 代码随想录算法【Day54】
  • 2025-02-25 学习记录--C/C++-用C语言实现删除字符串中的子串