ansible面试题

简述Ansible及其优势?

Ansible 是一款极其简单的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet,cfengine, chef, func, fabric)的优点。实现了批量系统配置,批量程序部署,批量运行命令等功能。同时Ansible是基于模块工作,其实现批量部署的是ansible所运行的模块。
Ansible其他重要的优势:
跨平台支持:Ansible在物理、虚拟、云和容器环境中为Linux、Windows、UNIX和网络设备提供
无代理支持。

  • 人类可读的自动化:Ansible playbook以YAML文本文件的形式编写,易于阅读,有助于确保每个人都理解他们将要做的事情。
  • 对应用程序的完美描述:Ansible playbook可以进行任何更改,并且可以描述和记录应用程序环境的每个细节。
  • 易于管理的版本控制:Ansible剧本和项目是纯文本。它们可以像源代码一样处理,并放在现有的版本控制系统中。
  • 支持动态库存:Ansible管理的机器列表可以从外部资源动态更新,以便随时捕获所有受管服务器的正确的当前列表,无论基础设施或位置如何。
  • 易于与其他系统集成的编排:HP SA、Puppet、Jenkins、Red Hat Satellite,以及存在于环境中的其他系统,都可以被利用并集成到Ansible工作流中。

简述Ansible工作机制及其特性?

Ansible是一款自动化运维工具,基于Python开发,具有批量系统配置, 批量程序部署, 批量运行命令等功能。
其工作机制如下:

  • 1、用户使用Ansible或Playbook,在服务器中断输入Ansible的Ad-Hoc命令集或Playbook;
  • 2、Ansible遵循预先编排的规则将Playbooks逐条拆解为Play;
  • 3、Play组织成Ansible可识别的任务(Task);
  • 4、Task会调用任务所涉及的所有模块(Module)和插件(Plugin);
  • 5、读取Inventroy中定义的主机列表;
  • 6、通过SSH认证(默认)将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果。其特性如下:
  • 7、no agents:不需要在被管控主机上安装任何客户端,只需SSH、Python即可,建议Python版本为2.6.6以上;
  • 8、no server:无服务器端, 使用时直接运行命令即可;
  • 9、modules in any languages:基于模块工作, 丰富的内置模块,可使用任意语言开发模块;
  • 10、yaml, not code:使用yaml语言定制剧本playbook,易于管理,API简单明了;
  • 11、ssh by default:基于SSH工作,整个过程简单、方便、安全,建议使用公钥方式认证;
  • 12、strong multi-tier solution:可实现多级指挥。

简述Ansible中如何保存敏感数据?

在ansible内容中保留秘密数据并仍然公开共享,那么可以在playbooks中使用Vault。Ansible Vault,它包含在Ansible中,可以加密和解密Ansible使用的任何结构化数据文件。

简述Ansible适合的场景?

Ansible将编排与配置管理、供应和应用程序部署结合并统一在一个易于使用的平台上。Ansible的一些主要场景包括:

  • 配置管理:集中配置文件管理和部署是Ansible的一个常见场景。
  • 应用程序部署:当使用Ansible定义应用程序,并使用Ansible Tower管理部署时,团队可以有效地管理从开发到生产的整个应用程序生命周期。
  • 部署:当在系统上部署或安装应用程序时,Ansible和Ansible Tower可以帮助简化供应系统的流程,无论是PXE启动的裸金属服务器或虚拟机,还是从模板创建虚拟机或云实例。
  • 持续交付:创建CI/CD管道需要许多团队的协调和参与。如果没有一个简单的自动化平台,团队协作很难完成。而Ansible playbook在应用程序的整个生命周期中可以保持适当的部署(和管理)
  • 安全性和审计:当安全策略在Ansible中定义时,可以将站点范围的安全策略的扫描和修复集成到其他自动化流程中。安全性是部署的所有内容中不可或缺的一部分。
  • 编排:配置本身不能定义环境,需要定义多个配置如何交互,并确保可以将不同的部分作为一个整体来管理。

简述Ansible Inventory?

Ansible中受管主机列在主机清单(inventory)文本文件中,清单还将这些系统组织成group,以便更容易地进行批量管理。一个Inventory定义了Ansible将管理的主机集合。这些主机还可以分配至组,可以对组进行批量管理。组可以包含子组,主机可以是多个组的成员。Inventory根据类型可分为静态清单和动态清单:

  • 静态主机Inventory可以由文本文件定义。
  • 动态主机Inventory可以由脚本或其他程序根据需要使用外部信息提供者生成。

简述Ansible配置文件优先级?

Ansible 只使用最高优先级配置文件中的设置,其它配置文件中的设置将被忽略。即使存在其他优先级较低的文件,它们的设置也将被忽略,并且不会与所选配置文件中的设置相结合。
$ANSIBLE_CONFIG环境变量指定的任何文件都将覆盖所有其他配置文件。如果没有设置该变量,接下来将检查运行ansible命令的目录以查找ansible.cfg文件。如果该文件不存在,则检查用户的主目录以查找.ansible.cfg文件。如上配置文件都不存在时,才使用全局/etc/ansible/ansible.cfg文件。

简述Ansible ad-hoc命令?

Ad-Hoc命令是一种快速执行单个Ansible任务的方法,适合于不需要永久保存该任务,临时执行的场景。Ad-Hoc是简单的控制台操作,无需编写剧本就可以运行。它们对于快速测试和更改非常有用。

简述Ansible ad-hoc和playbook的区别?

  • Ad-Hoc 命令可以作为一次性命令对一组目标主机运行单个、简单的任务。
  • Ad-Hoc 不适合复杂配置管理或编配场景,Ad-Hoc 一次只能调用一个模块和一组参数。当需要多个
  • 操作时,必须使用多个 Ad-Hoc 来执行。
  • playbook可以实现以一种简易重复的方式对一组目标主机运行多个复杂的任务。
  • Playbook 是描述要在受管主机上实施的必要配置或程序性步骤的文件。
  • Playbook 为配置管理和部署提供了强大而灵活的解决方案。
  • Playbook 可以将冗长而复杂的管理任务转变为可轻松重复的历程,并且可预测成果然而。
  • playbook 是一个文本文件,其中包含一个或多个按顺序运行的play的列表。
  • playbook中,可以将playbook中的tasks保存为人类可读且可立即运行的形式。
  • play 是一组有序的任务,应该对从目录中选择的主机运行。

简述Ansible变量?

Ansible 利用变量存储整个 Ansible 项目文件中可重复使用的值,从而可以简化项目的创建和维护,并减少错误的发生率。在定义Ansible变量时,通常有如下三种范围的变量:

  • global范围:从命令行或Ansible配置中设置的变量;
  • play范围:在 play 和相关结构中设置的变量;
  • host范围:inventory、facts 或 register 的变量,在主机组和个别主机上设置的变量。

简述Ansible如何实现任务的循环?

简单循环:

  • Ansible支持使用loop在一组item上迭代任务;
  • loop可以使用列表中的每个项、列表中每个文件的内容、生成的数字序列或使用更复杂的结构来重复任务。
  • 使用loop使管理员不必编写使用相同模块的多个任务。

复杂(嵌套)循环:

  • with_nested键用于嵌套循环,循环在循环中运行。它需要一个包含两个或多个列表的列表。例如,将一个列表划分为两个列表,任务将迭代第一个列表中的每一项与第二个列表中的每一项。

简述Ansible hanlder?

Ansible模块被设计成幂等的,即在一个适当编写的剧本中,剧本及其任务可以在不更改受管主机的情况
下多次运行,除非它们需要进行更改以使受管主机达到所需的状态。
然而,有时当一个任务对系统进行了更改后同时需要运行另一个任务。例如,对服务的配置文件的更改可能需要重新加载服务,以便更改后的配置生效。此时就需要使用hanlder程序。handler程序是响应由其他任务组成的通知的任务。每个handler程序都有一个全局惟一的名称,并在剧本中任务块的末尾触发。
如果没有任务通过名称调用handler程序,它将不会运行。
如果一个或多个任务都调用handler程序,它将在剧中的所有其他任务完成后仅运行一次。 因为handler程序是任务,所以可以在handler程序中使用与处理任何其他任务相同的模块。通常, handler程序用于重新启动主机和重新启动服务。 handler程序可以视为非活动任务,只有在使用notify语句显式调用时才会触发这些任务。

简述Ansible Block?
在 playbook 中, blocks 是囊括了任务的子句;
blocks 允许对任务进行逻辑分组,并可用于控制任务的执行方式,例如,管理员可以定义一组主要任务
和一组附加任务,附加任务仅在第一组失败时执行。为此,可利用三个关键字在 playbook 中使用块:
block:定义要运行的主要任务;
rescue:定义将在 block 子句中定义的任务失败时运行的任务;
always:定义始终都独立运行的任务,不论 block 和 rescue 子句中定义的任务是成功还是失败。
简述Ansible如何处理play错误的?
Ansible审查每个任务的返回代码,以确定任务是否成功或失败。默认情况下,当一个任务失败时,
Ansible会立即中止该主机上的其他操作,并跳过所有后续任务。
实际生产中,若希望即使任务失败也能继续执行play,Ansible也包含了多种特性用于管理任务错误:
忽略任务失败:在任务中使用ignore_errors关键字忽略错误,即使任务失败,也继续在主机上执行
playbook。
简述Ansible角色?
数据中心有各种不同类型的主机。如web服务器、数据库服务器,基于开发环境的服务器。随着时间的
推移,具有处理所有这些情况的任务和人员的Ansible playbook将变得庞大而复杂。
角色允许将复杂的剧本组织成独立的、更小的剧本和文件。
角色提供了一种从外部文件加载任务、处理程序和变量的方法。
角色也可关联和引用静态的文件和模板。
角色可以编写成满足普通用途需求,并且能被重复利用。
定义角色的文件具有特定的名称,并以严格的目录结构进行组织。
简述Ansible Galaxy?
Ansible Galaxy是一个由各种Ansible管理员和用户编写的Ansible角色的公共库。它是一个包含数千个
Ansible角色的归档文件,并且有一个可搜索的数据库,帮助Ansible用户识别可能帮助他们完成管理任
务的角色。Ansible Galaxy包括指向新用户和角色开发人员的文档和视频的链接。
简述Ansible如何控制任务的并行执行?
通过在所有主机上并行运行任务,Ansible可以对剧本的执行进行更多的控制。默认情况下,Ansible默
认最多并行5个,因此它将同时在5台不同的机器上运行一个特定的任务。Ansible可以通过配置forks来
设置并行执行任务数量。
同时Ansible也可以通过serial来减少ork数量所指定的并行书,serial关键字主要用于控制滚动更新,避
免一次性更新过多的节点。
简述Ansible故障后的排查思路?
日志判断 :默认情况下,Ansible没有配置为将其输出,记录到任何日志文件中。可通过
ansible.cfg配置文件default部分中的log_path参数或$ANSIBLE_LOG环境变量进行配置。然后通过
日志进行定位。
Debug模块 :调试模块是Ansible可用的模块之一,它可以更好地了解控制节点上正在进行的操
作。这个模块可以在playbook执行时为某个变量提供值。
syntax-check :通过ansible-playbook 命令的 --syntax-check命选项检查剧本的YAML语法。
handler程序可以视为非活动任务,只有在使用notify语句显式调用时才会触发这些任务。

简述Ansible Block?

在 playbook 中, blocks 是囊括了任务的子句;
blocks 允许对任务进行逻辑分组,并可用于控制任务的执行方式,例如,管理员可以定义一组主要任务和一组附加任务,附加任务仅在第一组失败时执行。为此,可利用三个关键字在 playbook 中使用块:
block:定义要运行的主要任务;
rescue:定义将在 block 子句中定义的任务失败时运行的任务;
always:定义始终都独立运行的任务,不论 block 和 rescue 子句中定义的任务是成功还是失败。

简述Ansible如何处理play错误的?

Ansible审查每个任务的返回代码,以确定任务是否成功或失败。默认情况下,当一个任务失败时,Ansible会立即中止该主机上的其他操作,并跳过所有后续任务。
实际生产中,若希望即使任务失败也能继续执行play,Ansible也包含了多种特性用于管理任务错误:
忽略任务失败:在任务中使用ignore_errors关键字忽略错误,即使任务失败,也继续在主机上执行
playbook。

简述Ansible角色?

数据中心有各种不同类型的主机。如web服务器、数据库服务器,基于开发环境的服务器。随着时间的推移,具有处理所有这些情况的任务和人员的Ansible playbook将变得庞大而复杂。

  • 角色允许将复杂的剧本组织成独立的、更小的剧本和文件。
  • 角色提供了一种从外部文件加载任务、处理程序和变量的方法。
  • 角色也可关联和引用静态的文件和模板。
  • 角色可以编写成满足普通用途需求,并且能被重复利用。
  • 定义角色的文件具有特定的名称,并以严格的目录结构进行组织。

简述Ansible Galaxy?

Ansible Galaxy是一个由各种Ansible管理员和用户编写的Ansible角色的公共库。它是一个包含数千个Ansible角色的归档文件,并且有一个可搜索的数据库,帮助Ansible用户识别可能帮助他们完成管理任务的角色。Ansible Galaxy包括指向新用户和角色开发人员的文档和视频的链接。

简述Ansible如何控制任务的并行执行?

通过在所有主机上并行运行任务,Ansible可以对剧本的执行进行更多的控制。默认情况下,Ansible默认最多并行5个,因此它将同时在5台不同的机器上运行一个特定的任务。Ansible可以通过配置forks来设置并行执行任务数量。
同时Ansible也可以通过serial来减少ork数量所指定的并行书,serial关键字主要用于控制滚动更新,避免一次性更新过多的节点。

简述Ansible故障后的排查思路?

  • 日志判断 :默认情况下,Ansible没有配置为将其输出,记录到任何日志文件中。可通过ansible.cfg配置文件default部分中的log_path参数或$ANSIBLE_LOG环境变量进行配置。然后通过日志进行定位。
  • Debug模块 :调试模块是Ansible可用的模块之一,它可以更好地了解控制节点上正在进行的操作。这个模块可以在playbook执行时为某个变量提供值。
  • syntax-check :通过ansible-playbook 命令的 --syntax-check命选项检查剧本的YAML语法。
  • diff :Ansible还提供了--diff选项。此选项报告对受管主机上的模板文件所做的更改。如果与--check选项一起使用,这些更改将显示出来,而不是实际执行。从而判断Ansible整个过程需要做何种更改。

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

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

相关文章

生产小工单如何轻松实现生产任务敏捷管理的?

在现代生产任务制造业中,有效管理生产是提升效率的关键。生产管理系统中的生产小工单管理,是解决传统生产管理痛点的重要工具。本文将深入探讨生产小工单的概念、流程及其主要功能。 下面我会用一个实际的生产工单系统为例,给大家详细介绍下…

苍穹外卖--开发记录day12(完结篇)

目录 苍穹外卖day12一:工作台二:apachePOI三:导出excel报表(最后一个功能!!) 总结(项目完结心得) 苍穹外卖day12 一:工作台 代码导入之后就是这样的效果&…

Java 虚拟机(JVM)中的内存泄漏排查技巧及各种内存查看命令分析工具推荐

文章目录 引言什么是内存泄漏?工具和技术1. 使用 jstat 监控 JVM2. 使用 jmap 生成堆转储文件3. 使用 jvisualvm 分析堆转储文件4. 使用 MAT(Memory Analyzer Tool)5. 使用 YourKit 或 JProfiler6. 代码审查和静态分析 实战案例案例 1&#x…

使用U-KAN训练自己的数据集 — 医疗影像分割

<U-KAN Makes Strong Backbone for Medical Image Segmentation and Generation> U-Net已成为各种视觉应用的基石,如图像分割和扩散概率模型。虽然通过整合变压器或mlp引入了许多创新设计和改进,但网络仍然局限于线性建模模式以及缺乏可解释性。为了应对这些挑战,受到…

数据库框架GORM快速入门【干货】

1.安装依赖 &#xff08;1&#xff09;安装GORM框架 go get -u gorm.io/gorm&#xff08;2&#xff09;安装不同的数据库驱动&#xff08;根据实际情况选择&#xff09; go get -u gorm.io/driver/mysql go get -u gorm.io/driver/postgres go get -u gorm.io/driver/sqlite …

ChartCheck: Explainable Fact-Checking over Real-World Chart Images

论文地址: https://aclanthology.org/2024.findings-acl.828.pdfhttps://aclanthology.org/2024.findings-acl.828.pdf 1.概述 事实验证技术在自然语言处理领域获得了广泛关注,尤其是在针对误导性陈述的检查方面。然而,利用图表等数据可视化来传播信息误导的情况却很少受到…

【简历】25届浙江某211大学JAVA简历:明明项目有货,但是长篇大论减分!!

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 另外&#xff1a;我们出这一系列校招简历指导的原因&#xff0c;就是看很多学生被忽悠&#xff0c;没有先定位大厂、中厂还是小公司&#xff0c;导…

京准电钟HR-901GB双GPS北斗卫星时钟服务器

京准电钟HR-901GB双GPS北斗卫星时钟服务器 京准电钟HR-901GB双GPS北斗卫星时钟服务器 作为国家电力系统最重要的设备之一,卫星时间同步装置随着电力行业的发展不断有了新的要求,从单纯的具备时间数据输出能力,发展到装置状态信息上送、对用时设备的对时质量进行监测,确保站点内…

Logistic回归(分类)问题探讨与实践

说明 在本专栏机器学习_墨#≯的博客-CSDN博客之前的博文中&#xff0c;已经对感知机[1]、SVM[2]以及线性回归问题[3]做过探讨和实践。感知机以及SVM是用来做分类的&#xff0c;线性回归是用来做拟合的。本文将要探讨的Logistic回归(逻辑回归)则是使用线性回归的方法来做分类(二…

90V转5V4A同步降压芯片WT6037

90V转5V4A同步降压芯片WT6037 WT6037 被定义为一款高压同步降压转换器&#xff0c;其设计可在 10V 至 90V 的宽泛工作电压区间内稳定运行。该转换器尤其适用于需承受宽电压输入范围的电池组系统&#xff0c;诸如 12V 至 72V 的电池组&#xff0c;以及 60V 至 90V 的降压应用场…

docker搭建etcd集群环境方式

docker搭建etcd集群环境方式 from: etcd 虚拟机与docker搭建etcd集群环境方式_docker部署etcd集群-CSDN博客 windows系统下 1: “\”要换成&#xff1a;“^” 2: 不能在windows powershell下执行

安全见闻(5)——开阔眼界,不做井底之蛙

安全见闻五&#xff1a;人工智能 内容预览 ≧∀≦ゞ 安全见闻五&#xff1a;人工智能声明导语一、人工智能基础机器学习基础机器学习的典型工作流程1. 数据收集2. 数据预处理3. 模型选择与训练4. 模型评估与优化5. 模型应用 深度学习基础深度学习基本原理1. 神经网络基础2. 多层…

DOL 电机启动器接触器选择和选型

接触器连接在断路器和热过载保护继电器之间。接触器的选型和选择过程与断路器在计算满载电流和计算额定电流方面的过程类似。不同之处在于市场上可用组件的选择表。 从断路器的选型和选型中&#xff0c;我们发现&#xff1a; 电机尺寸 6HP 功率(P)4476W 电机FLC7.78A 断路…

Linux经常使用命令汇总和总结

Linux经常使用命令汇总和总结 文章目录 Linux经常使用命令汇总和总结一、基本命令二、目录操作命令三、文件操作命令四、压缩文件操作五、查找命令六、su、sudo七、系统服务八、网络管理九、定时任务指令crontab 配置十、其他命令 一、基本命令 1.1 关机和重启 关机 shutdown …

汽车免拆诊断案例 | 2019 款奥迪 A6L 车行驶中偶发熄火

故障现象  一辆2019款奥迪A6L车&#xff0c;搭载2.0T发动机&#xff0c;累计行驶里程约为9万km。车主反映&#xff0c;车辆行驶中偶发熄火&#xff0c;故障频率较高。 故障诊断  接车后试车&#xff0c;起动发动机&#xff0c;可以正常起动着机。使用故障检测仪检测&#x…

一起搭WPF架构之完结总结篇

一起搭WPF架构之完结总结篇 前言设计总结设计介绍页面一页面二页面三 结束 前言 整体基于WPF架构&#xff0c;根据自己的需求简单设计与实现了衣橱的数据统计、增加与读取数据、并展示数据的小软件。我知道自己在设计方面还有很多不足&#xff0c;暂时先做到这里了&#xff0c…

ubuntu启用ssh

在Ubuntu上启用SSH服务&#xff0c;你需要安装OpenSSH服务器软件包&#xff0c;然后启动并使SSH服务在启动时自动运行。 更新软件包列表&#xff1a; sudo apt update安装OpenSSH服务器软件包&#xff1a; sudo apt install openssh-server确认SSH服务正在运行&#xff1a; …

MySQL中SQL的执行顺序

MySQL中SQL的执行顺序 在日常的开发工作中&#xff0c;我们经常会自己手写一些sql语句&#xff0c;但是对于这些sql语句是怎么执行的&#xff0c;执行的顺序又是怎么样的呢&#xff1f;想必各位大佬对此也是了解的&#xff0c;所以对sql语言的执行顺序有一定的了解的话&#x…

【SQL|大数据|数据清洗|过滤】where条件中 “ != “ 和 “ NOT IN() ” 对NULL的处理

对数据进行清洗过滤的时候&#xff0c;NULL往往是一个很特殊的存在&#xff0c;对NULL值的存在通常有以下三种方式 1、保留NULL 2、过滤掉NULL 3、将NULL替换为其他符合业务需求的默认常量 下面是一些常用处理NULL的方式&#xff1a; 如下图所示数据源&#xff1a; car_vin&…

天锐绿盾与Ping32内网安全保护能力对比,选择最优方案

在数字化时代&#xff0c;企业内网安全面临着越来越多的挑战。有效保护内网数据安全&#xff0c;防止信息泄露和外部攻击至关重要。今天&#xff0c;我们将对比天锐绿盾和Ping32这两款内网安全保护软件&#xff0c;帮助您选择最适合的解决方案。 1. 安全防护机制 Ping32 Ping…