Ansible自动化运维工具使用
Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。
1. Ansible的核心概念
在使用 Ansible 之前,需要掌握以下几个核心概念:
- Inventory(主机清单):Ansible 通过 inventory 文件管理目标主机。文件可以包含不同主机组的定义。
- Playbook(剧本):Playbook 是 Ansible 执行自动化任务的脚本,通常使用 YAML 格式编写。它描述了在目标主机上执行的任务。
- Task(任务):Task 是 Playbook 中的基本单元,表示一个具体的操作,如安装软件、启动服务。
- Module(模块):Ansible 中的模块用于执行具体的任务。常用的模块有
yum
、apt
、service
、copy
等。 - Roles(角色):Roles 是 Ansible 用于组织 Playbook 的机制,将任务、变量、文件等逻辑进行模块化。
2. Ansible 安装与配置
Ansible 的安装比较简单,主要在控制节点(control node)上进行,不需要在被管理节点上安装任何客户端软件。
2.1 在 CentOS 和 Ubuntu 上的安装
CentOS 系统
sudo yum install epel-release -y
sudo yum install ansible -y
Ubuntu 系统
sudo apt update
sudo apt install ansible -y
2.2 配置主机清单文件
Ansible 的默认主机清单文件位于 /etc/ansible/hosts
。用户可以在该文件中定义不同的主机组,并指定具体的主机 IP 地址或主机名。例如:
[webservers]
web1.example.com
web2.example.com[dbservers]
db1.example.com
其中 [webservers]
和 [dbservers]
分别代表不同的服务器组。
3. 常用操作与命令
3.1 测试连接
通过 Ansible 的 ping
模块,运维人员可以测试与目标主机的连接:
ansible all -m ping
输出结果:
web1.example.com | SUCCESS => {"changed"