Ansible 和 Docker 是两种常用于自动化部署和配置管理的工具。Ansible 是一个基于 Python 的自动化运维工具,可以配置管理、应用部署、任务自动化等。而 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
下面将给出一个简单的示例,展示如何使用 Ansible 和 Docker 进行自动化部署。
步骤 1: 安装 Ansible 和 Docker
首先,确保你的机器上已经安装了 Ansible 和 Docker。可以通过以下命令在 Ubuntu 上安装:
        bash复制代码
|---|---------------------------------------------------------------------------------|
|   | # 安装 Ansible                                                                  |
|   | sudo apt-get update                                                           |
|   | sudo apt-get install -y ansible                                               |
|   |                                                                                 |
|   | # 安装 Docker                                                                   |
|   | sudo apt-get update                                                           |
|   | sudo apt-get install \                                                        |
|   | apt-transport-https \                                                         |
|   | ca-certificates \                                                             |
|   | curl \                                                                        |
|   | software-properties-common                                                    |
|   |                                                                                 |
|   | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -  |
|   | sudo add-apt-repository \                                                     |
|   | "deb [arch=amd64] https://download.docker.com/linux/ubuntu \                  |
|   | $(lsb_release -cs) \                                                          |
|   | stable"                                                                       |
|   | sudo apt-get update                                                           |
|   | sudo apt-get install docker-ce docker-ce-cli containerd.io                    |
步骤 2: 创建 Ansible 脚本
创建一个名为 deploy.yml 的 Ansible 脚本,用于部署 Docker 容器:
        yaml复制代码
|---|-------------------------------------------------|
|   | ---                                           |
|   | - name: Deploy Docker container               |
|   | hosts: localhost                              |
|   | become: yes                                   |
|   |                                                 |
|   | tasks:                                        |
|   | - name: Ensure Docker is running and enabled  |
|   | systemd:                                      |
|   | name: docker                                  |
|   | state: started                                |
|   | enabled: yes                                  |
|   |                                                 |
|   | - name: Pull Docker image                     |
|   | docker_image:                                 |
|   | name: nginx                                   |
|   | tag: latest                                   |
|   | source: pull                                  |
|   |                                                 |
|   | - name: Run Docker container                  |
|   | docker_container:                             |
|   | name: my_nginx                                |
|   | image: nginx:latest                           |
|   | ports:                                        |
|   | - "80:80"                                     |
|   | volumes:                                      |
|   | - ./nginx.conf:/etc/nginx/nginx.conf          |
|   | restart_policy: always                        |
|   | state: started                                |
这个脚本做了以下几件事情:
- 确保 Docker 服务正在运行并启用。
 - 从 Docker Hub 拉取最新版本的 Nginx 镜像。
 - 运行一个名为 
my_nginx的 Docker 容器,将宿主机的 80 端口映射到容器的 80 端口,并将本地的nginx.conf文件挂载到容器的/etc/nginx/nginx.conf路径。 
步骤 3: 运行 Ansible 脚本
在包含 deploy.yml 文件的目录中运行以下命令:
        bash复制代码
|---|---------------------------------------------|
|   | ansible-playbook -i localhost, deploy.yml |
这将启动一个名为 my_nginx 的 Nginx 容器,并将本地的 nginx.conf 文件应用到容器中。
注意事项
- 确保你已经安装了 Ansible 和 Docker。
 - 根据你的需求调整 Ansible 脚本中的参数,例如容器名称、镜像、端口映射等。
 - 在运行 Ansible 脚本之前,确保你的当前目录中包含一个名为 
nginx.conf的 Nginx 配置文件,或者你可以修改脚本以使用其他路径或文件名。 
这个示例演示了如何使用 Ansible 和 Docker 进行简单的自动化部署。你可以根据自己的需求进一步扩展和定制这些工具。