运维自动化 Ansible

Ansible是一种无需在目标服务器上安装代理的配置管理系统,基于Python语言实现。它支持通过SSH进行安全的远程操作,具备模块化特性,允许用户通过定义playbooks来编排复杂的任务流程,实现批量操作和重复任务的自动化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是什么

Ansible简单的说是一个配置管理系统(configuration management system)。你只需要可以使用ssh访问你的服务器或设备就行,它也不同于其他工具,因为它使用推送的方式,而不是像puppet等那样使用拉取安装agent的方式。

能做什么

ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作。

比如:同时在100台服务器上安装nginx服务,并在安装后启动它们。

比如:将某个文件一次性拷贝到100台服务器。

比如:每当有新服务器加入工作环境时,你都要为新服务器部署某个服务,也就是说你需要经常重复的完成相同的工作。

特性

 模块化:调用特定的模块,完成特定任务
 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块
 支持自定义模块
 基于Python语言实现
 部署简单,基于python和SSH(默认已安装),agentless
 安全,基于OpenSSH
 支持playbook编排任务
 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
 无需代理不依赖PKI(无需ssl)
 可使用任何编程语言写模块
 YAML格式,编排任务,支持丰富的数据结构
 较强大的多层解决方案

架构

主要组成部分

1、playbooks

任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YAML文件。

2、Inventory

Ansible管理主机的清单/etc/ansible/hosts

3、modules

ansible执行命令的功能模块,多数为内置的核心模块,也可以自定义,ansible-doc -l可查看模块。

4、plugins

模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等

5、API

供第三方程序调用的应用程序编程接口

6、ansible

ansible命令工具,其为核心执行工具。

 

 

参考:http://blog.51cto.com/191226139/2066936

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值