简介
Ansible(https://github.com/ansible/ansible) 是一款开源的自动化运维工具,使用 Python 语言开发。
通过预订好的流程(剧本),可以实现对服务器集群的批量操作,配合定时任务还能实现对服务器的自动化运维。
本文介绍如何部署 Ansible 和简单使用,用于监测服务器的 Docker 服务,停机时自动重启。
安装
Ansible 通过 pip3 命令安装,需要服务器有 Python 环境,可参考下面这篇博客安装 Python 环境
安装好 Python 命令后,敲下面的命令安装 Ansible
shell
python3 -m pip install ansible --no-cache-dir --trusted-host mirrors.aliyun.com --index-url http://mirrors.aliyun.com/pypi/simple/
如下

敲下面的命令,把 Ansible 命令加入到系统环境变量中,下面的 Python 地址换成自己的
shell
echo 'export PATH="/usr/local/dev/python/python3/bin:$PATH"' >> /root/.bashrc
source /root/.bashrc
敲下面的命令,查看 Ansible 版本信息
shell
ansible --version
出现下面的信息说明安装完成

使用
Ansible 是通过剧本来知道需要执行的操作的,剧本文件是 yml 格式,如下,是一个检测本机 Docker 服务状态,服务停止并重启的剧本
yml
- name: 自动检测 Docker 服务状态,宕机则重启
hosts: localhost
gather_facts: false
tasks:
# 检查 docker 是否在运行
- name: 检查 Docker 服务状态
service:
name: docker
state: started
enabled: yes # 开机自启
register: docker_status
# 如果服务挂了,会自动重启
- name: Docker 已宕机 → 执行重启
debug:
msg: "Docker 服务已重启成功!"
when: docker_status.changed
测试一下,目前 Docker 服务是开启的

敲下面的命令,关闭 Docker 服务

敲下面的命令,执行剧本
shell
ansible-playbook [剧本文件.yml]
如下

执行剧本的命令完全可以加入到系统的定时任务中,每 10 秒执行一次,这样就做到了服务器的巡检
当然,这只是一个简单使用,还能加入清理服务磁盘空间等其他的操作
服务器定时任务的介绍参看下面这篇博客: