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

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

相关文章:

  • 使用Python爬虫获取孔夫子旧书网已售商品数据:调用item_search_sold接口
  • SmartMediakit之音视频直播技术的极致体验与广泛应用
  • 安装TortoiseGit时,显示需要安装驱动?!
  • kafka的ACL配置的sasl.kerberos.principal.to.local.rules配置解释
  • JavaScript的BOM编程
  • 前端页面什么是全屏嵌入/什么是局部嵌入
  • 费曼学习法7 - NumPy 数组的 “变形术”:形状变换与索引切片 (基础篇)
  • 当PHP遇上区块链:一场奇妙的技术之旅
  • 基于SSA-KELM-Adaboost(麻雀搜索优化的极限学习机自适应提升算法)的多输入单输出回归预测【MATLAB】
  • 如何用python将pdf转为text并提取其中的图片
  • js基础语法
  • 前端监控与埋点
  • Three.js 入门(辅助、位移、父子关系、缩放旋转、响应式布局)
  • VC++零基础入门之系列教程 【附录E MFC快速参考指南】
  • 20250212:ZLKMedia 推流
  • Visual Studio Code 远程开发方法
  • C#从入门到精通(35)—如何防止winform程序因为误操作被关闭
  • 為什麼使用不限量動態住宅IP採集數據?
  • 2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(四)
  • Redis详解
  • 中国证监会副主席李明:目前A股估值水平仍处于相对低位
  • 以色列在加沙发起新一轮强攻,同步与哈马斯展开无条件谈判
  • 张巍任中共河南省委副书记
  • 白玉兰奖征片综述丨海外剧创作趋势观察:跨界·融变·共生
  • 新城悦服务:独董许新民辞任,新任独董与另两人组成调查委员会将调查与关联方资金往来
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者