本教程指导您使用 Ansible 和流行的社区维护的 Ansible 角色 geerlingguy.docker
在多个主机上安装 Docker。
先决条件
在开始之前,请确保您具备:
- 在控制机器上安装了 Ansible。 (安装指南)
- 已配置 SSH 访问目标主机。
- 在目标主机上具有 sudo 权限的用户(或 root 访问权限)。
第 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
将 host1
和 host2
替换为您的实际目标主机名或 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,从而简化基础设施管理。