ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ansible-playbook剧本

2021-10-25 20:00:54  阅读:220  来源: 互联网

标签:文件 roles 角色 ansible playbook 剧本 目录 模板


playbooks剧本

playbooks本身由以下各部分组成

  1. Tasks:任务,即通过task调用ansible的模板将多个操作组织在一个playbook中运行
  2. Variables:变量
  3. Template:模板
  4. Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作
  5. Roles:角色

 定义、引用变量

 

 指定远程主机sudo切换用户

 

 when条件判断

在ansible中,提供的唯一一个通过的条件判断是when指令,当when指令的值为true时,则该任务执行,否则不执行该任务。

when一个比较常见的应用场景是实现跳过某个主机不执行任务或者只有满足条件的主机执行任务

 

 

 迭代

ansible提供了很多中循环结构,一般都命名为with_items,作为等同于loop循环

 

 

 Template模块

Jinja是基于Python的模板引擎。Template类是Jinja的一个重要组件,可以看作是一个编译过的模板文件,用来产生目标文本,传递Python的变量给模板去替换模板中的标记。

 

 

 

 

 

 tags模块

可以在一个playbook中为某个或某些任务定义“标签”,在执行此playbook时通过ansible-playbook命令使用--tags选项能实现仅运行指定的tasks。
playbook还提供了一个特殊的tags为always。作用就是当使用always当tags的task时,无论执行哪一个tags时,定义有always的tags都会执行。

 

 

 

 

 

 

 

 Roles模块

Ansible为了层次化、结构化地组织Playbook,使用了角色(roles),roles可以根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。

roles 内各目录含义解释

●files
用来存放由 copy 模块或 script 模块调用的文件。

●templates
用来存放 jinjia2 模板,template 模块会自动在此目录中寻找 jinjia2 模板文件。

●tasks
此目录应当包含一个 main.yml 文件,用于定义此角色的任务列表,此文件可以使用 include 包含其它的位于此目录的 task 文件。

●handlers
此目录应当包含一个 main.yml 文件,用于定义此角色中触发条件时执行的动作。

●vars
此目录应当包含一个 main.yml 文件,用于定义此角色用到的变量。

●defaults
此目录应当包含一个 main.yml 文件,用于为当前角色设定默认变量。

●meta
此目录应当包含一个 main.yml 文件,用于定义此角色的特殊设定及其依赖关系。

在一个 playbook 中使用 roles 的步骤:

(1)创建以 roles 命名的目录

 

 (2)创建全局变量目录(可选)

 

 (3)在 roles 目录中分别创建以各角色名称命令的目录

 

 (4)在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用不到的目录可以创建为空目录,也可以不创建

 

 (5)在每个角色的 handlers、tasks、meta、defaults、vars 目录下创建 main.yml 文件,千万不能自定义文件名

 

 (6)修改 site.yaml 文件,针对不同主机去调用不同的角色

 

 (7)运行 ansible-playbook

 

 简述Ansible角色

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

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

标签:文件,roles,角色,ansible,playbook,剧本,目录,模板
来源: https://www.cnblogs.com/zhangyupengzuishuai/p/15439295.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有