news 2026/5/15 23:25:56

自动化运维工具 Ansible 集中化管理服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动化运维工具 Ansible 集中化管理服务器

目录

1. Ansible 概述和运行机制

1.1 Ansible 概述

1.2 Ansible 工作机制

1.3 Ansible 角色 (Role)

2. Ansible 环境安装部署

3. Ansible 基础命令及模块操作

3.1 command 模块

3.2 shell 模块

3.3 cron 模块

3.4 user 模块

3.5 group 模块

3.6 copy 模块

3.7 file 模块

3.8 hostname 模块

3.9 ping 模块

3.10 yum 模块

3.11 service/systemd 模块

3.12 script 模块

3.13 setup 模块

4. Inventory 主机清单与变量配置

4.1 Inventory支持对主机进行分组

4.2 常用 Inventory 变量

(1)主机变量

(2)组变量

(3) 组嵌套


1. Ansible 概述和运行机制

1.1 Ansible 概述

Ansible 是一款面向类 Unix 系统的自由开源配置和自动化工具,由 Python 编写。与 SaltStack、Puppet、Chef 相似,但具有以下优势:

  • 无需在被管理节点安装客户端,轻量级。
  • 通过 SSH 协议与节点通信。
  • 使用 YAML 和 Jinja2 模板语言进行配置和自动化任务编排。

官方网站: https://www.ansible.com/

1.2 Ansible 工作机制

Ansible 通过 SSH 将模块推送到被管理节点执行,执行完后自动删除。可结合 SVN 等工具管理自定义模块及任务编排。

Ansible 核心组成:

1. Ansible:核心引擎

2. Modules:内置核心模块和自定义模块

3. Plugins:补充模块功能,如连接插件、邮件插件等

4. Playbooks:剧本,定义多任务操作

5. Inventory:主机清单

1.3 Ansible 角色 (Role)

随着数据中心环境复杂化,Playbook 会变得庞大且难以维护。角色提供了对复杂任务的模块化管理:

  • 将任务组织为独立、可复用的剧本和文件
  • 提供从外部加载任务、处理程序、变量的机制
  • 可关联静态文件和模板
  • 满足通用需求,可重复使用
  • 严格的目录结构要求

2. Ansible 环境安装部署

环境示例:

类型

IP

管理端

192.168.10.23

被管理端

192.168.10.14

被管理端

192.168.10.15

管理端安装 Ansible:

yum install -y epel-release# 安装 EPEL 源

yum install -y ansible

目录结构:

/etc/ansible/

├── ansible.cfg # 配置文件,一般无需修改

├── hosts # 主机清单

└── roles/ # 公共角色目录

配置主机清单:

vim /etc/ansible/hosts

[webservers] #配置组名

192.168.10.14 #组里包含的被管理的主机IP地址或主机名(主机名需要先修改/etc/hosts文件)

[dbservers]

192.168.10.15

配置免密 SSH 登录:

3. Ansible 基础命令及模块操作

命令格式

ansible <组名> -m <模块> -a <参数>

常用模块示例

3.1 command 模块

远程执行命令,不支持管道/重定向

3.2 shell 模块

支持管道和 shell 特性

3.3 cron 模块

管理计划任务

3.4 user 模块

用户管理

3.5 group 模块

3.6 copy 模块

复制文件或内容

3.7 file 模块

文件管理

3.8 hostname 模块

修改主机名

3.9 ping 模块

检测主机连通性

ansible all -m ping

3.10 yum 模块

管理软件包

3.11 service/systemd 模块

服务管理

3.12 script 模块

执行本地脚本

3.13 setup 模块

收集节点信息

4. Inventory 主机清单与变量配置

4.1 Inventory支持对主机进行分组

4.2 常用 Inventory 变量

变量名

含义

ansible_host

节点 IP

ansible_port

SSH 端口,默认 22

ansible_user

SSH 用户

ansible_password

SSH 密码(未使用密钥时)

ansible_ssh_private_key_file

私钥文件

ansible_become

提升权限

ansible_become_method

提升方式(sudo/su/runas)

ansible_become_user

提升为指定用户

ansible_become_password

提升密码

基本示例:

(1)主机变量

[webservers]

192.168.10.14 ansible_port=22 ansible_user=root ansible_password=abc1234

(2)组变量

[webservers:vars]

ansible_user=root

ansible_password=abc1234

[all:vars]

ansible_port=22

(3) 组嵌套

[nginx]

192.168.10.20

192.168.10.21

192.168.10.22

[apache]

192.168.10.30

192.168.10.31

192.168.10.32

192.168.10.33

[webs:children]

nginx

apache

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 22:54:58

基于西门子S7-1200 PLC与组态王软件的污水处理监控系统

内容概要&#xff1a;本文设计了一套基于西门子S7-1200 PLC与组态王软件的污水处理监控系统&#xff0c;采用序列间歇式活性污泥法&#xff08;SBR法&#xff09;进行污水处理&#xff0c;涵盖进水、曝气、沉淀和排水四个阶段。系统通过液位、温度、pH、溶解氧&#xff08;DO&a…

作者头像 李华
网站建设 2026/5/6 17:53:27

火山引擎发布豆包大模型1.8和音视频创作模型Seedance 1.5 pro

12月18日&#xff0c;火山引擎在FORCE原动力大会上正式发布豆包大模型1.8及音视频创作模型Seedance 1.5 pro。权威评测数据显示&#xff0c;豆包大模型在多模态理解、生成能力及Agent能力上&#xff0c;已跻身全球第一梯队。 据火山引擎总裁谭待介绍&#xff0c;截至今年12月&…

作者头像 李华
网站建设 2026/5/14 23:00:45

微服务(1)

最近主包的考试有点多&#xff0c;六级&#xff0c;期末&#xff0c;所以最近有点偷懒 废话不多说&#xff0c;回归正题 服务注册和发现 首先我们需要先去知道为什么要进行服务注册和发现&#xff0c;因为我们在使用微服务的时候每个项目都是独立的对不对&#xff0c;那么我要是…

作者头像 李华
网站建设 2026/5/8 1:01:55

python基于Django的图书馆借阅论坛系统_158xjlt3可视化

文章目录 具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 同行可拿货,招校园代理 python基于Django的图书馆借阅论坛系统_158xjlt3可视化…

作者头像 李华
网站建设 2026/5/9 16:35:21

RabbitMQ 如何保证消息不丢失和不重复消费?掌握这 4 个关键点

在开发中&#xff0c;我们经常用RabbitMQ来做系统之间的传话筒。比如用户下单后&#xff0c;通知库存系统减库存、通知物流系统准备发货。但问题来了&#xff1a;万一消息丢了怎么办&#xff1f;或者同一条消息被处理了两次怎么办&#xff1f;别担心&#xff01;只要做好以下几…

作者头像 李华
网站建设 2026/5/13 6:27:14

开题报告卡壳?虎贲等考 AI 打破 “框架焦虑”,学术起点一步到位

作为毕业论文的 “敲门砖”&#xff0c;开题报告不仅是对研究方向的核心梳理&#xff0c;更是导师评估研究可行性的关键依据。但多数学生在撰写时陷入 “三重困境”&#xff1a;框架逻辑混乱、研究意义表述模糊、技术路线不清晰&#xff0c;反复修改仍难达学术规范。虎贲等考 A…

作者头像 李华