本教程指导您使用 Ansible 和流行的社区维护的 Ansible 角色 geerlingguy.docker 在多个主机上安装 Docker。


先决条件

在开始之前,请确保您具备:


第 1 步:创建 Ansible Playbook

创建一个名为 docker-playbook.yml 的文件:

- name: Install Docker using geerlingguy.docker role
  hosts: all
  become: yes  # 使用 sudo 提升权限
  gather_facts: yes

  roles:
    - geerlingguy.docker

这个简单的 playbook 将 Docker 安装角色应用于所有指定的主机。


第 2 步:定义角色和集合依赖关系

创建一个名为 requirements.yml 的文件,以清楚地定义外部 Ansible 角色和集合依赖关系:

roles:
  - name: geerlingguy.docker
    version: 7.4.1  # 指定版本以保持一致性

collections:
  - name: community.docker
    version: ">=3.0.0"

指定版本确保可重复、一致的部署。


第 3 步:安装所需的角色和集合

运行以下命令以安装 requirements.yml 中指定的依赖项:

ansible-galaxy install -r requirements.yml

此命令获取并安装角色和集合。


第 4 步:运行 Playbook

使用 Ansible 的命令行界面执行 playbook。您可以为简单起见在线指定您的清单:

ansible-playbook docker-playbook.yml -i "host1,host2," -u root

host1host2 替换为您的实际目标主机名或 IP 地址。

注意:

  • 在线清单末尾的逗号是必需的。
  • 选项 -u root 设置 Ansible 用于连接主机的用户;根据您的 SSH 设置进行修改。

验证 Docker 安装

运行 playbook 后,您可以通过运行以下命令验证每个主机上的 Docker 安装:

ssh root@host1 docker --version
ssh root@host2 docker --version

您应该看到类似于以下内容的输出:

Docker version 26.1.3, build XXXXXXX

结论

通过遵循这种结构化的方法,您可以有效地利用 Ansible 在多个服务器上一致且可靠地安装 Docker,从而简化基础设施管理。