Ansible入门:解锁IT自动化的神

在当今的IT自动化领域,Ansible无疑是一个无法被忽视的重要角色。其便利性和高效性受到了广大开发者和系统管理员的一致好评,成为了配置管理和应用部署的首选工具。然而,对于一些初学者来说,Ansible的概念和架构可能会显得有些复杂和难以理解。因此,我打算通过一系列深入解析Ansible的博文,帮助大家更好地理解和使用这一工具。


ansible 简介

ansible 是什么?

  ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

  ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远

程主机通讯的。ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。

图片


ansible 特点

1.部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;

2.默认使用SSH协议对设备进行管理;

3.有大量常规运维操作模块,可实现日常绝大部分操作;

4.配置简单、功能强大、扩展性强;

5.支持API及自定义模块,可通过Python轻松扩展;

6.通过Playbooks来定制强大的配置、状态管理;

7.轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;

8.提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。

图片

上图为ansible的基本架构,从上图可以了解到其由以下部分组成:

核心:ansible

核心模块(Core Modules):这些都是ansible自带的模块 

扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块

插件(Plugins):完成模块功能的补充

剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行

连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件

主机群(Host Inventory):定义ansible管理的主机


安装

1、强烈建议使用yum 进行安装,或者装所有服务器配置为同一版本的python以避免因为python版本而导致的错误。

yum install ansible

2、使用pip3 进行安装。最好将所有服务器安装同一版本的python,以避免版本问题。

#yum install sshpass 有时交互输入密码时自动交互使用。

#pip3 install ansible paramiko PyYAML Jinja2


ansible 程序结构

安装目录如下(yum安装):

  配置文件目录:/etc/ansible/

  执行文件目录:/usr/bin/

  Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/

  Help文档目录:/usr/share/doc/ansible-X.X.X/

  Man文档目录:/usr/share/man/man1/

ansible配置文件查找顺序

  ansible与我们其他的服务在这一点上有很大不同,这里的配置文件查找是从多个地方找的,顺序如下:

1.检查环境变量ANSIBLE_CONFIG指向的路径文件(export ANSIBLE_CONFIG=/etc/ansible.cfg);

2.~/.ansible.cfg,检查当前目录下的ansible.cfg配置文件;

3./etc/ansible/ansible.cfg检查etc目录的配置文件。


ansible配置文件

ansible的配置文件为

/etc/ansible/ansible.cfg,ansible

 有许多参数,下面我们列出一些常见的参数:

inventory = /etc/ansible/hosts #这个参数表示资源清单inventory文件的位置
library = /usr/share/ansible #指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
forks = 5 #并发连接数,默认为5
sudo_user = root #设置默认执行命令的用户
remote_port = 22 #指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
host_key_checking = False #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
timeout = 60 #设置SSH连接的超时时间,单位为秒
log_path = /var/log/ansible.log #指定一个存储ansible日志的文件(默认不记录日志)

使用yum进行安装时,产生的配置文件

图片


敬请关注博主,我们将持续为您带来云计算行业及更多前沿技术的最新信息,助您把握技术动态,领先一步!”

网络豆云计算学堂

讲解云计算,运维,linux,AI前沿科技,计算机技术知识,分享优质内容,从入门到精通。

74篇原创内容

公众号

若您渴望深入了解云计算知识,或希望与云计算、运维、网络等领域的精英们共同交流学习,欢迎您私信博主,博主将为您提供宝贵的免费学习资料,并引荐您加入专业交流群。在这里,您可以与各路大咖切磋技艺,共享行业前沿资讯,一同成长进步。期待您的参与,让我们共同开启云计算领域的探索之旅!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3032488.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

微火全域外卖团购服务,引领商家与合伙人变革行业赛道!

在当今的数字化时代,外卖业务正成为越来越多人的日常生活选择。然而,随着市场的日益饱和和竞争的加剧,传统外卖模式已经难以满足商家和消费者的多元化需求。正是在这样的背景下,全域外卖团购业务应运而生,以其独特的模…

山东大学软件学院创新项目实训开发日志——第11周

山东大学软件学院创新项目实训开发日志——第11周 项目名称:ModuFusion Visionary:实现跨模态文本与视觉的相关推荐 -------项目目标: 本项目旨在开发一款跨模态交互式应用,用户可以上传图片或视频,并使用文本、点、…

使用Remix部署智能合约到币安链(Remix的操作介绍 币安链合约的部署) 点赞收藏哦

大家好,我是程序员大猩猩呀。 据我所知,很多人进入币圈之后,想要通过炒币一夜暴富!另一部分人呢他们希望自己能创建一个项目,然后发行自己的数字货币然后暴富。 不管是什么方式吧,只要不违法,…

小程序第八章总结

1.比目后端云简介 一个完整的小程序系统, 不但需要前端的展现, 而且需要后端服务器的支撑, 以提供数据服务。 也就是说, 开发一个真正完整的小程序应用, 需要前后端的相互配合。 小程序与远程服务器之间通过HTTPS 传输…

计算机组成结构—指令和指令格式

目录 一、指令的基本格式 二、指令字长 1. 定长指令字结构 2.变长指令字结构 三、地址码 1.四地址指令 2.三地址指令 3.二地址指令 4.一地址指令 5. 零地址指令 四、操作码 1. 定长操作码指令格式 2. 扩展操作码指令格式 五、指令的操作数类型和操作类型 1. 操作…

基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表

目录 一、引言 二、数据分组原理与意义 三、案例分析 四、代码实现与解释 五、对新手友好的解释 六、技术细节与扩展 七、实际应用场景 八、总结 一、引言 在数据处理和分析的广阔领域中,数据分组是一项基础且重要的任务。数据分组通常指的是将数据集中的元…

程序员的归宿。。

大家好,我是瑶琴呀。 相信每个进入职场的人都考虑过自己的职业生涯规划,在不同的年龄段可能面临不同挑战,这点对于 35 的人应该更为感同身受。 对于程序员来说,大部分人的职业道路主要是下面三种:第一条,…

数据序列包分析

基于数据序列包分析各部分的内容及含义,可能会考大题 基于本例分析,每部分含义如下: 时间(Time): 时间戳显示了数据包在网络中被捕获的具体时间。在本例中,如"0.000000"表示第一个数据…

【PG数据库】PostgreSQL 日志归档详细操作流程

1.1 日志归档的目的 pg数据库日志归档是将PostgreSQL数据库的日志文件进行归档的过程。 归档的主要目的是为了保留历史数据,确保数据的一致性和完整性,同时为数据恢复提供必要的支持。 pg数据库日志归档的目的包括: 1.数据恢复&#xff1…

【IC前端虚拟项目】axi ddr/sram验证组件思路与编写

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 在完成了所有的utils包括apb_utils之后,就要进行验证环境的整体搭建,因此我们再把验证环境拿出来看一下: 按照由底至顶层的思路,接下主要有五大部分需要我们完成:ram_model、reference_model、env、…

Github 配置 SSH key

一、前言 问题描述 通过 ssh 的 url 使用 git 命令克隆 github 上私有项目出现 fatal: Could not read from remote repository. 本地仓库无法从远程仓库读取数据克隆失败 问题定位 一般是仓库 URL 错误或者权限问题这里排除 URL 错误,初步定位为访问权限问题 解决…

力扣HOT100 - 84. 柱状图中最大的矩形

解题思路&#xff1a; 单调栈 对于一个高度height[ i ]&#xff0c;找左右两边均严格小于它的值。 class Solution {public int largestRectangleArea(int[] heights) {int n heights.length;int[] left new int[n];int[] right new int[n];Deque<Integer> mono_st…

RS3236-3.3YUTDN4功能和参数介绍及PDF资料

RS3236-3.3YUTDN4功能和参数介绍及PDF资料-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 品牌: RUNIC(润石) 封装: XDFN-4-EP(1x1) 描述: 带过温保护 输出类型: 固定 最大输入电压: 7.5V 输出电压: 3.3V 最大输出电流: 500mA RS3236-3.3YUTDN4 是一款低压差线性稳压器&#x…

商务分析方法与工具(八):Python的趣味快捷-年少不知numpy好,再见才觉很简单

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

3分钟掌握Suno API!音痴也能创作热门曲!免费拥有个人爆款音乐!

Suno API 的申请及使用 随着 AI 的应用变广&#xff0c;各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多&#xff0c;从最初的写作&#xff0c;到医疗教育&#xff0c;再到现在的音乐。 Suno 是一个专业高质量的 AI 歌曲和音乐创…

[AutoSar]lauterbach_001_ORTI_CPUload_Trace

目录 关键词平台说明一、ORTI概述二、ORTI文件的生成三、ORTI文件的导入四、Trace 功能4.1 Trace 功能菜单介绍4.2 Trace功能的配置4.3 Trace MCDS 设置4.4 Task Switches断点的设置4.5 Trace 数据的录取4.6 CPU 负载和Task调度的查看 关键词 嵌入式、C语言、autosar、OS、BSW…

Qt——信号 和 槽

目录 概述 信号和槽的使用 自定义信号和槽 带参数的信号和槽 概述 在Linux系统中&#xff0c;我们也介绍了信号的产生、信号的检测以及信号的处理机制&#xff0c;它就是系统内部的通知机制&#xff0c;也可以是一种进程间通信的方式。在系统中有很多信号&#xff0c;我们可…

MySQL —— 约束

一、概念介绍 MySQL是数据管理的最后一层防线&#xff0c;因此在对数据进行各种操作的时候&#xff0c;我们尽可能的从技术的角度去对用户进行各种合理的约束&#xff0c;使得各种数据的操作尽可能的合理&#xff0c;这就是约束的概念&#xff0c;本篇将整理常见的基本约束&am…

SOCKET编程(4):SOCKET实战

SOCKET实战 Writen()、Readn()函数 send()函数存在需要发送的字符数len小于函数返回的已发送的字符数(ssize_t)的问题 recv()函数存在需要接收的字符数len小于函数返回的已接收的字符数(ssize_t)的问题 解决上述问题通过Writen()、Readn()函数实现 //buff是数据存储地址&a…

资源管理游戏模版进入The Sandbox

我们非常高兴地向您介绍 Game Maker 的最新模板&#xff1a;资源管理游戏&#xff01; 这一全新的模板让您能够深入身临其境的游戏体验中&#xff0c;同时掌握令人兴奋的新机制。通过揭开模板的神秘面纱&#xff0c;您可以锤炼您的游戏设计技能。 什么是资源管理游戏&#xff1…