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

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

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

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

Filter Plugin

过滤插件式大多数用户从来不需要了解的东西。这允许创在新的 Jinja2 过滤,而这只对那些知道什么是 Jinja2 过滤的人有帮助。如果你需要他们,你可以从 API docs 部分学习如何写他们。

Forks

Ansible 与远端节点交流是通过并行的机制,并行机制的方式可以通过传递 –forks参数设置,或者在配置文件里面编辑。默认是保守的5个线程。如果你有足够的内存,你可以很容易的设置为50或者更多值。

Gather Facts (Boolean)

上面已经提到了Facts。有时候在运行多个 playbook ,可能不想收集一些fact ,而且以后也不会用到这些值。在playbook里面设置 gather_facts:False 指示跳过收集 facts。

Globbing

Globbing 是一个一种基于通配符的方式挑选许多主机,而不是明确指定主机的名字,或者它们的组名。例如 ,使用 “www*”,来匹配所有以 “www” 开头的所有主机。这个理念直接被吸收进 Func 。除此之外,不同的 set 操作也可以通过 globbing 实现。

Group

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

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” 步骤来重新配置时间服务器信息。

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值