Ansible自带化运维工具术语大全_ansible gather_facts什么意思(1)

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

组由几个主机组成,可以方便的当做一个目标看待,同时可以共享变量。

Group Vars

group_vars 文件位于一个目录下面,同时在 inventory 旁边,有一个可选的文件名在每个组后面。这是一个方便的位置来存放变量,提供给每个组,由其是复杂的数据结构,因此这些变量不需要嵌入在 inventory 文件或 playbook 文件里面。

Handlers

Handler 仅仅是普通的任务在Ansible playbook里面(请参考tasks)。但是仅仅当任务包含 “notify” 指令和指示它改变了一些东西的时候才运行。例如,如果一个配置文件改变了,然后任务引用这个配置文件模板通知服务器重启 handler 。这意味着服务可以被反弹仅仅他们需要重启的时候。Handler 不仅仅可以用于重启服务,但是重启服务是最通用的用法。

Host

一个host 只是简单的 Ansible 管理的远端机器。它们可以被分配私有的变量,可以被组织为一个组。所有的组有可以访问一个名字,也可以是IP地址,如果他们在默认的SSH端口不能访问,可以指定一个一个可选的端口号

Host Specifier

每一个 Play 映射为一系列的 tasks (可以是定义的role,purpose,或系统指令) 到一些系统的集合

“hosts:” 指令在每个play中通常叫做主机指定。

它可以挑选一个系统,一个或更多组,甚至一些主机在其他组不在某个组里面,但是在另外一个组里面。

Host Vars

就像”Group Vars”,一个名称为 “host_vars/” 的目录在 inventory 文件旁,可以在 invetory 文件的主机名后面包含这个文件,使用 YAML 格式。这提供一个方便的位置分配变量给这个主机而不要在 inventory 文件里面嵌入太多变量。Host Vars 文件还可以用于定义复杂的在 inventory 文件里面不断出现的数据结构。

Lazy Evaluation

总的来说, Ansible 评估任何变量在 playbook 内容在最新的可能的时间里,也就是意味着如果你定义了一个数据结构,这个数据结构自身也可以定义变量值在里面,然后每件事情就像你期望的那样工作。 这也意味着 变量字符串可以包含其它的变量在字符串里面。

Lookup Plugin

一个查询插件是从外界得到数据进入 Ansible 。这些东西就像 “with_items” ,一个基础的循环插件,但是也有其它的查询插件就像 “with_file”, 从文件加载数据,甚至有一些逡巡环境变量, DNS 文本记录,或者键值存储。 查询插件也可以被 templates 访问 ,{{ lookup(‘file’,‘/path/to/file’) }}.

Multi-Tier

IT 系统不是一次在同一时间只管理一个系统,而是在多个系统之间交互,一组系统,在一个定义好的顺序里面。例如,一个 web server 可能需要在数据库服务器之前更新,web server的部分内容又要在 THAT 数据库服务之后更新,同时不同的负载均衡器和监控服务器也需要被联系到。 Ansible 看待系统为整个工作流和拓扑,而不是简单的一次一个系统。

Idempotency

改变类的命令仅仅在他们需要使用的时候才被使用,最好描述系统的状态而不是如何到达系统某个状态的过程。打个比方,从美国的卡罗莱纳州到加利福尼亚州包括驾驶很长一段距离的车,但是如果我是在阿拉斯加州,则需要乘坐地铁。 Ansible的资源就像你说,“把我放到加利福尼亚”然后决定如何到达那里。如果你已经在加利福尼亚,没有什么会发生,然后他会让你知道什么都没有发生,不需要改变什么东西。

Includes

Playbook 文件可以包含其它的 plays,任务列表也可以扩展在其它文件的外部任务,就像处理器。 Include 可以被参数化的,也就是装载文件可以传递变量。例如,一个Include 表演设置Wordpress 博客站点,需要传递”user”参数,然后这个表演(play)可以 include 多于一次的博客站点,例如叫做 “alice” 和 “bob”

Inventory

一个描述主机和组的 Ansible 文件。Inventory 可以通过 “Inventory Script” 提供,有时也叫做 “External Inventory Script”

Inventory Script

一个简单的从外部资源寻找主机,主机组的成员,和变量信息的程序 – 可以是个 SQL 数据库,一个 CMDB 解决方案,或者是 LDAP。这个概念来自 Puppet (叫”External Nodes Classifier”),工作方式也是类似的。

Jinja2

Jinja2 是 Ansible 模板的首选语言。它非常简单,很容易阅读和书写。

JSON

Ansible 从远端机器上返回的数据使用 JSON 类型。这使得模块可以使用任何语言编写,而不仅仅是Python。

Library

许多模块的集合供 /usr/bin/ansible 或 Ansible Playbook 使用。

Limit Groups

通过传递 --limit somegroup 参数给 ansible 或 ansible-playbook ,命令可以限制为一些主机的子集 。 例如这可以使目标为全部的服务器到只允许一个服务器运行 playbook 。

Local Connection

通过在 playbook 中使用 “connection:local” ,或者传递 “-c local” 给 /usr/bin/ansible ,这指明了我们正在管理本地主机而不是远端机器。

Local Action

local_action 指令在 playbook 意味着给予的步骤仅仅会在本地机器上运行, 但是这变量 ‘{{ ansible_hostname }}’可以被传递到远端机器引用。这可以被用于触发器,例如,rsync 操作。

Loops

通常来说, Ansible 不是一个编程语言。它跟喜欢声明,尽管不同的结果像 “with_items” 使得指定的任务重复的实验多个 items 在一个列表里面。特定的模块,例如 yum 和 apt ,对这更喜欢,可以安装多个包,然后加速了配置的总时间。

Modules

Module 是 Ansible 运行远端机器的单元。模块可以使用通过 /usr/bin/ansible 或者 /usr/bin/ansible-playbook 。模块可以通过任何语言编写包括 Perl,Bash,Ruby,但是使用Python 可以利用一些有用的社区库代码。模块仅仅返回一些 JSON 格式数据或简单的 key=value 集合。一旦模块在远端执行之后,他们就被移除了,隐私不需 daemon 长时间运行。Ansible 把模块的集合看做 ‘library’

Notify

等级改变的事件和通知处理任务需要在 play 的最后运行。如果一个 handler 被多个任务通知,它会仍然仅仅运行一次。 Handler仅仅按照列表运行一次,而不是他们被notified 的顺序。

Orchestration

一些软件自动化系统使用这个单词意味着不同的事情。 Ansible使用它作为一个导演执导一个曲子。一个数据中心或云架构充满多个系统,表演很多角色 – web servers,database servers,负载均衡器,监控系统, 持续集成系统等。在具体表演过程中,必须要安排好特定的步骤。一些系统执行一些步骤,然后其它系统,然后先前的系统执行更多的步骤。同时,发送邮件也可能是需要的到 web service 联系人。 Ansible 编排了所有过程的模型。

paramiko

默认, Ansible 管理机器使用 SSH。而 Ansible 默认使用的 python 提供的库叫 paramiko。 paramiko库非常的快和很容易管理,渴望支持 Kerberos 或 jump Host 的用户转向使用 SSH 作为连接类型了。在他们的 playbook里面使用 “-c ssh” 选项即可。

Playbooks

Playbooks 是一种语言,Ansible 用于编排,配置,管理和部署吸引。他们被叫做 Playbooks 的部分原因是依据它行为的类比,使用它应该是一件有趣的事情。他们不是 工作书。

Plays

一个 playbook 就是一系列的 plays。一个 play 就是在一些主机中挑选指定的主机和主机组,然后运行任务在这些主机上,定义这些主机的角色和他们会怎么样表演。

Pull Mode

Pull 模式是节点每隔 N 分钟检查特定的主机。它使用 ansible-pull 程序,pull模式有很多选择性。Ansible-pull 在任务计划中检查配置指令熟悉怒,使用连接插件,在本地管理机器。

Push Mode

push 模式是 Ansible 的默认模式。事实上,这也不算是个模式 – 你不去想它的时候 ansible 就是这么工作的。Push 方式通过复杂的编排进程,而不要等到节点检查,对节点有个很好的粒度控制。

Register Variable

Ansible 运行的结果可以存储在一个变量里面以便模板或条件语句使用,用于定义这个变量的关键字叫做 ‘register’。你可以定义无限制的变量名用于 registertion.

Resource Model

Ansible 模块工作在资源上。例如,file 模块会挑选指定的文件然后确保资源的属性匹配指定的模型。例如,我们想改变 /etc/motd 的属主为 ‘root’,如果它还没设置为 root,或者设置权限为‘0644’,如果还没有设置为 0644 。资源模型是幂等性( ‘idemotent’ )意味着改变命令不会运行除非需要的时候,Ansible会把系统变为期望的状态而不管当前的状态是什么。

Roles

一个 Role 可以包含特定的变量值,特定的任务,特定的触发器等东西。因为 Role 的文件结构,roles 可以是再次利用的单元,可以让你在其它 playbooks 中共享一些行为。

Rolling Update

一次处理某组主机的 N 个节点,避免一次全部更新导致系统离线。 例如,在一个 500 节点的 web 拓扑里,最好一次更新 10~20 台机器一次。Ansible 中的 ‘seria’ 关键字控制 rolling updtae的池。默认是一次全部处理。OS 配置可以不使用 rolling update 模型,但是可以这么做。

Runner

Ansible 核心的组件是 /usr/bin/ansible 指令,它背后有强大的力量,激发 playbook 中的每个任务。 Runner 一般是 Ansible 开发者经常谈论的,但是它对用户来说不是经常用到的词汇。

Serial

参考 “Rolling Update”.

Sudo

Ansible 不要求一定用 root 登录,它是无守护进程模式的(这可能是个安全问题,在敏感的环境里面)。 Ansible可以记录一些运行 sudo 命令的操作,可以运行无密码的和有密码的 sudo。 一些操作不需要使用 sudo (像 scp 文件传输)可以通过 Ansible 的 copy,template,和 fetch 模块实现。

SSH (Native)

OpenSSH 作为 Ansible 的传输被指定使用 “-c ssh”,这可以很有用当你想登陆通过 Kerberized SSH 或者 SSH jump hosts 等待。在 1.2.1版本,ssh被用作默认,之前使用 ‘paramiko’ 作为默认。使用一个客户端 支持 ControlMaster 和 ControlPersist 是被推荐的对于管理大量主机。如果你不需要使用 Kerbers,jump hosts或者其它的特性, 选择 paramiko 是不错的选择。Ansible 会发出警告,如果它没有检测到 ControlMaster/ControlPersist 兼容性。

Tags

Ansible 允许给playbook里面的资源通过自定义的关键字打上标签,然后只运行与关键字一致的部分代码。 例如,可能有个完成的 OS 配置,然后特定的步骤标记为 “ntp” ,然后运行 “ntp” 步骤来重新配置时间服务器信息。

Tasks

Playbooks 包含 Tasks, Tasks 结合一个动作使用一个名称和一些可选的关键字。处理器也是 tasks,但是他们是特殊的 tasks 不运行,除非他们被通知一个 tasks 报道的远端吸引变化。

Templates

Ansible 很容易的传输文件到远端系统上面,但是它经常需要替换一些变量在其它的文件里面。变量可以来自 清单文件,Host Vars, Group Vars,或者 Facts。Templates 使用 Jinja2 模板引擎同样可以包含逻辑控制像循环和 if 语句。

Transport

Ansible 使用 “Connection Plugins” 定义可用的传输类型。这只是 Ansible 如何到达管理的系统。Rransports 包括 paramiko, SSH (using OpenSSH), 和 local.

When

一个可选的关键字来决定这个任务是不是应该指向,如果再 “when:” 关键字这里的表达式是是不正确的,这个任务会被忽略。

Van Halen

没有其它的原因,Michael 真的很喜欢他们,所有的 Ansible 版本代号都是以 Van Halen 的歌曲命名。

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

[外链图片转存中…(img-iTZwhTgR-1715701106561)]
[外链图片转存中…(img-gVCNJlNn-1715701106561)]
[外链图片转存中…(img-vhhjTSOu-1715701106561)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值