00-Ansible开篇

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 00-Ansible开篇

一、Ansible 概述
Ansible 是一个配置管理和自动化运维工具。Ansible 基于 Python 语言实现,由Paramiko和PyYAML两个关键模块构建。Ansible 集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能(比如:同时在100台服务器上执行修改密码操作;同时在200台服务器上安装nginx服务,并在安装后启动它们;将某个文件一次性拷贝到300台服务器上)。Ansible 具有以下特点:
部署简单,只需要在主控端部署 Ansible 环境,被控端无需做任何操作;
模块化设计,调用特定的模块来完成特定任务,本身是核心组件,短小精悍;
默认使用 SSH(Secure SHell)协议对设备进行管理;
支持非root用户管理操作,支持sudo,权限管理分级明确;
主从集中化管理;
配置简单、功能强大、扩展性强;
支持 API 及自定义模块,可通过 Python 轻松扩展;
通过 Playbooks 来定制强大的配置、状态管理;
对云计算平台、大数据都有很好的支持;
提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口——AWX 平台;
幂等性:一种操作重复多次结果相同。
二、Ansible 架构
Ansible 是基于模块工作的,本身没有批量部署的能力。真正实现批量部署的是 Ansible 所运行的模块,Ansible 只是提供一种框架。主要包括:
Ansible:Ansible自身核心模块;
Connection Plugins:连接插件,负责和被管理主机通信(通过SSH或者ZeroMQ连接到主机);
Host Inventory:主机库,定义被管理的主机列表;
Modules:各种模块,包括核心模块、自定义模块。Ansible 管理主机之前,先调用 Core Modules 中的模块,然后指明管理 Host Inventory 中的主机,就可以完成管理主机。如果核心模块不足以完成某种功能,可以添加自定义模块,此模块支持任何语言编写。
Plugins:完成模块功能的补充,借助于插件完成记录日志、发送邮件等功能;
Playbooks:定义 Ansible 任务的配置文件,可以将多个任务定义在一个 Playbook 中,由 Ansible 自动执行。Playbook 执行支持多个任务,可以由管理主机运行多个任务,同时对多台被管理主机进行管理。
16.png

三、Ansible 执行模式及执行过程
Ansible 系统由控制主机对被管理节点的操作分为两类,即 ad-hoc 和 playbook:
(1)ad-hoc:使用单个模块,支持批量执行单条命令。
(2)playbook:Ansible 主要管理方式,功能强大。playbook 通过多个 task 集合完成一类功能,实现如 Web 服务的安装部署,数据库服务的批量备份等。可简单把 playbook 理解成组合多条 ad-hoc 操作的配置文件。
ad-hoc 命令更注重于解决一些简单或平时工作中临时遇到的任务,相当于 Linux 系统命令行下的 Shell 命令;而 ansible-playbook 更适合于解决复杂或固化下来的任务,相当于 Linux 系统的 Shell Scripts。只有灵活运用 ansible-playbook 才能更好的体会到 Ansible 的强大。
Ansible 执行过程如下图所示:
17.png

四、总结
本节我们了解了 Ansible 是什么,能做什么,有哪些特点,由哪些部分组成,如何执行操作以及执行的流程。下一节我们学习如何安装配置 Ansible。
参考文档:
https://baike.baidu.com/item/ansible/20194655
https://www.cnblogs.com/waynechou/p/ansible_detail.html
http://www.ilurker.cn/?post=282
http://www.zsythink.net/archives/2481
《Ansible自动化运维:技术与最佳实践》

相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
Web App开发 测试技术 API
Flutter 3.16 中带来的更新
Flutter 3.16 中带来的更新
310 0
|
存储 安全 算法
【BLE】 BLE配对绑定保姆级介绍
实现蓝牙通信安全,除了paring/bonding这种底层方式,用户也可以在应用层去实现相同功能,两者从功能上和安全性上没有本质区别,只不过应用层自己实现的话,需要自己选择密码算法,密钥生成,密钥交换等,如果你不是这方面的专家,你的应用就有可能会存在安全漏洞。设备跟手机绑定成功后,手机再次重连这个设备时,就会自动跳过service discovery过程,换句话说,配对的时候手机会把设备所有服务和characteristic的handle保存下来,二次重连的时候,直接用以前保存的handle值去操作设备。
4915 1
【BLE】 BLE配对绑定保姆级介绍
|
6月前
|
人工智能 编解码 芯片
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
不会向ai提问,不知道怎么提问的 可以看看
20409 1
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
|
8月前
|
机器学习/深度学习 SQL 边缘计算
为襄阳职业技术学院最新推出的DeepSeek-R1-fix-XYTC:0908、DeepSeek-R1-fix-XYTC、Qwen-MAX-XYTC及DeepSeek-R1-XYTC多模态模型家族
本文档详细介绍了张永豪与联合库UNHub为襄阳职业技术学院开发的四款核心NLP模型架构,包括DeepSeek-R1-fix-XYTC:0908、DeepSeek-R1-fix-XYTC、Qwen-MAX-XYTC及DeepSeek-R1-XYTC。基于Transformer架构优化,各模型在响应延迟、知识检索和推理深度上各有侧重,适用于不同场景。文档提供了完整的架构参考、性能对比及使用建议,并附有API调用示例。建议每季度更新性能指标,确保最佳应用效果。
252 16
|
机器学习/深度学习 算法 计算机视觉
YOLOv8改进-论文笔记】 AKConv(可改变核卷积):任意数量的参数和任意采样形状的即插即用的卷积
AKConv是一种可改变核卷积,旨在解决传统卷积的局限,包括固定大小的卷积窗口和卷积核尺寸。AKConv提供灵活的卷积核参数和采样形状,适应不同尺度特征。其创新点包括:1)支持任意大小和形状的卷积核;2)使用新算法确定初始采样位置;3)应用动态偏移调整采样位置;4)优化模型参数和计算效率。AKConv已应用于YOLOv8,提高网络性能。相关代码可在<https://github.com/CV-ZhangXin/AKConv>找到。
|
存储 缓存 数据安全/隐私保护
探索 SSO 的世界:简化登录流程的最佳实践(上)
探索 SSO 的世界:简化登录流程的最佳实践(上)
探索 SSO 的世界:简化登录流程的最佳实践(上)
|
监控 项目管理
软件工程IT项目管理复习之 十一:项目风险管理
软件工程IT项目管理复习之 十一:项目风险管理
843 0
|
编解码 前端开发
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
2078 0
|
Unix Linux
扩展正则表达式
扩展正则表达式
192 4
|
Linux KVM 虚拟化
如何判断一个linux机器是物理机还是虚拟机
使用`dmesg`检查&quot;Hypervisor detected&quot;可识别Xen PV虚拟机;`lscpu`显示&quot;Hypervisor vendor&quot;表明KVM虚拟化;&quot;Virtualization: VT-x&quot;指示实体机;`systemd-detect-virt`无法准确判断;`dmidecode -t 1`在某些节点上无法区分虚拟与实体。
512 0