Ansible 基础概念与安装

1. 自动化动机 (Motivation for Automation)

概念解释: 指为什么要用Ansible等工具来替代手动管理服务器。核心动机包括:

效率与速度: 同时在上百甚至上千台服务器上执行任务,秒级完成,远非人工可比。

一致性与准确性: 通过脚本(Playbook)定义操作,确保每次执行的结果完全相同,避免因人工操作失误导致的配置漂移(Configuration Drift)。

可重复性与知识共享: 将运维操作代码化(Infrastructure as Code, IaC),新员工可以直接运行成熟的Playbook,而不是阅读冗长易过时的文档。

可扩展性: 管理10台服务器和管理1000台服务器的流程几乎一样,轻松应对业务增长。

2. 基本的 Ansible 概念 (Basic Ansible Concepts)

控制节点 (Control Node): 安装了Ansible的机器,用于发起和执行自动化任务。通常是运维人员的笔记本或一台专门的跳板机/CI-CD服务器。

受管节点 (Managed Nodes): 被Ansible管理的服务器、网络设备等目标主机。也称为“主机”(Hosts)。

无代理架构 (Agentless): Ansible的核心特性。它不需要在受管节点上安装任何额外的客户端代理(Agent)。它通过SSH(对于Linux/Unix)或WinRM(对于Windows)等标准协议进行连接和操作,极大地简化了部署和维护。

模块 (Modules): Ansible执行的“工具”或“命令”。每个模块都是一个独立的、完成特定任务的代码单元,例如:

yum/apt: 管理软件包

copy: 复制文件

service: 管理服务状态

user: 管理用户账户

运行一个任务(Task)本质就是调用一个模块。

任务 (Task): Ansible执行的一个操作单元。一个任务定义了要调用哪个模块以及传入什么参数。

- name: Ensure nginx package is installed  # 任务描述

  yum:                                    # 使用的模块

    name: nginx                          # 模块参数

    state: present

Play: 一个执行单元。一个Play定义了在一组特定的主机(来自清单)上要执行的一系列任务,以及可选的配置(如连接用户、是否提权等)。

Playbook: Ansible的自动化脚本,由一个或多个Play组成,采用YAML格式编写。它是Ansible配置、部署和编排语言的核心。

清单 (Inventory): 一个定义了受管节点信息的文件。它将主机分组,以便于批量管理。例如,定义[webservers]组包含所有Web服务器的主机名或IP。

临时命令 (Ad-Hoc Commands): 不需要编写Playbook,直接在命令行中执行的一次性、简单的Ansible任务。非常适合快速验证和简单操作。

ansible all -i inventory -m ping -u username # 使用ping模块检查所有主机的连通性

3. Ansible 的基本架构 (Ansible Architecture)

核心组件:

清单 (Inventory): 告诉Ansible要管理哪些主机。

模块 (Modules): 告诉Ansible具体要做什么操作。

Playbook: 告诉Ansible按什么顺序、在哪些主机上执行哪些模块。

执行流程:

用户编写Playbook或执行临时命令。

Ansible根据清单确定目标主机。

Ansible核心引擎将所需的模块代码通过SSH推送到受管节点上执行。

模块在受管节点上执行,并将结果返回给控制节点。

Ansible引擎汇总结果并输出给用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94257.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94257.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94257.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【测试】基于博客系统的测试报告

前言 本篇博客对简易的博客系统做的测试总结一份测试报告,包含功能测试,自动化测试,性能测试 💓 个人主页:zkf ⏩ 文章专栏:测试 若有问题 评论区见📝 🎉欢迎大家点赞👍…

Oracle:配置让插入语句时id自动输入

Oracle:配置让插入语句时id自动输入无需手动指定,核心是利用 序列(Sequence) 或 自增列(Identity Column) 来自动生成唯一值。以下是两种常用方案:方案 1:使用序列(Sequence&#xf…

秒杀服务的回调方案

在秒杀场景中,用户点击“抢购”后,后端需要通过异步处理应对高并发(避免请求阻塞),同时需通过实时回调机制将最终结果(成功/失败)推送给客户端并展示。核心方案是:“前端发起请求→后…

php apache无法接收到Authorization header

Apache 默认不传递 Authorization头到后端环境(如 PHP)。其表现是:print_r($_SERVER)时, 没有 [Authorization] :Array ([Accept-Language] > zh,en;q0.9,zh-CN;q0.8,en-US;q0.7[Accept-Encoding] > gzip, defla…

当我们想用GPU(nlp模型篇)

在个人设备上“把 GPU 真正用起来”做 NLP,分五步:准备 → 安装 → 验证 → 训练/推理 → 踩坑排查。下面每一步都给出可复制命令和常见错误。 ────────────────── 1. 硬件准备 • 一张 NVIDIA GPU,算力 ≥ 6.1&#xff08…

CryptSIPVerifyIndirectData函数分析

可以使用此函数从SIP接口对应的文件中提取签名信息 CryptSIPVerifyIndirectData:将当前文件的哈希结果做为“指纹”,并与从CryptSIPGetSignedDataMsg中提取的签名信息进行比较。 如果哈希结果相同,则意味着当前文件与之前签名的文件相同&…

20250823解决荣品RD-RK3588-MID开发板在充电的时候大概每10s屏幕会像水波纹闪烁一下

20250823解决荣品RD-RK3588-MID开发板在充电的时候大概每10s屏幕会像水波纹闪烁一下 2025/8/23 17:58【结论】:使用直流电源供电,给电池【快速】充电,但是直流电源的电压稳定,电流抖动导致的!那个是2.4G 已经知道了我司…

CANN安装

前提条件 请参考本文档正确安装和使用CANN软件,不建议将CANN安装在共享磁盘后,通过挂载的方式使用CANN,因为CANN对文件系统有文件锁的依赖,部分共享存储不支持文件锁,可能导致任务拉起失败。 root用户和非root用户安装CANN软件包的步骤一致,当前示例步骤以非root用户为例…

docker的基础配置

目录 数据卷 数据卷容器 端口映射与容器互联 互联机制实现便捷互访(基于容器搭建论坛) 数据卷 1.创建数据卷 [rootopenEuler-1 /]# docker volume create test test [rootopenEuler-1 /]# docker volume ls DRIVER VOLUME NAME local test [ro…

VSCode Import Cost:5 分钟学会依赖瘦身

一句话作用:在代码里 import 时,实时显示包大小,帮你一眼揪出体积炸弹。1️⃣ 30 秒安装 & 启动 打开 VSCode → 扩展商店搜索 Import Cost → 安装重启 VSCode,立即生效,零配置。2️⃣ 使用方式(开箱即…

TCP/UDP详解(一)

UDP报文源端口16bit 目的端口16bit校验和checksum16bit 总长度16bit--------------------------------------------------------------------------------------------------------------------------源目端口用于标识应用层协议,分为知名端口&#x…

数据库优化提速(一)之进销存库存管理—仙盟创梦IDE

从存储过程到通用 SQL:进销存系统的数据操作优化在进销存系统的开发与维护中,数据库查询语句的编写方式对系统的性能、兼容性和可维护性有着深远影响。本文将围绕给定的三段 SQL 代码展开,深入探讨将存储过程转换为通用 SQL 在进销存场景下的…

Redis面试精讲 Day 28:Redis云原生部署与Kubernetes集成

【Redis面试精讲 Day 28】Redis云原生部署与Kubernetes集成 在当今微服务与容器化浪潮中,Redis作为高性能缓存和消息中间件,已从单机部署逐步演进为云原生环境下的核心组件。Day 28 聚焦“Redis云原生部署与Kubernetes集成”,深入解析如何在…

leetcode刷题记录03——top100题里的6道简单+1道中等题

leetcode刷题记录03——top100题里的6道简单1道中等题上一篇博客: leetcode刷题记录01——top100题里的7道简单题 leetcode刷题记录02——top100题里的7道简单题 有效的括号 看懂需要用栈了,但是不知道怎么去写,看了题解mark下正确答案。 cla…

求单位球内满足边界条件 u = z³ 的调和函数

问题 6:在区域 {x2y2z2≤1}\{x^{2}y^{2}z^{2}\leq 1\}{x2y2z2≤1} 内找到一个调和函数 uuu,使得在边界 x2y2z21x^{2}y^{2}z^{2}1x2y2z21 上,uuu 等于 gz3gz^{3}gz3。 提示:根据第8.1节,解必须是一个三次调和多项式&…

AAA 服务器与 RADIUS 协议笔记

一、AAA 服务器概述1. 核心定义AAA 是认证(Authentication)、授权(Authorization)和计费(Accounting) 的简称,是网络安全领域中实现访问控制的核心安全管理机制,通过整合三种服务确保…

Vue3源码reactivity响应式篇之数组代理的方法

概览 vue3中对于普通的代理包含对象和数组两类,对于数组的方法是重写了许多方法,具体实现参见packages\reactivity\src\arrayInstrumentations.ts arrayInstrumentations实际上就是一个对象,对象的属性就是数组的方法,属性值就是重…

如何玩转K8s:从入门到实战

一、K8S介绍及部署 1 应用的部署方式演变 部署应用程序的方式上,主要经历了三个阶段: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应用…

综合测验:配置主dns,dhcp,虚拟主机,nfs文件共享等

综合实验(所有设备关闭防火墙和selinux)在appsrv上部署主dns,为example.com提供域名解析 安装bind bind-chroot rootappsrv ~]# yum install bind bind-chroot -y编辑主配置文件,全局配置文件,正向解析文件 [rootappsrv ~]# vim /etc/named.c…

MySQL数据库管理与索引优化全攻略

一、表管理1.建库语法:create database if not exists 数据库名;命名规则:仅可使用数字、字母、下划线、不能纯数字;区分字母大小写;具有唯一性;不可使用MySQL命令或特殊字符。相关命令:show databases; …