ansible-role角色:通过一个批量部署nginx范例学习role

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible-role角色:通过一个批量部署nginx范例学习role相关的知识,希望对你有一定的参考价值。

1简单的介绍role
  • ansible自1.2版本引入的新特性,用于层次性、结构化地组织playbook
  • roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。
  • 简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷地include它们的一种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中

2Ansible Roles目录编排

技术图片

  • 一个完整role的目录结构

技术图片

  • 相对应的执行顺序

技术图片

  • 启动文件

技术图片

  • 每个文件夹下都有一个main.yml文件,这是每个模块目录必须有的

技术图片

范例的执行顺序详解

  • 1创建组

技术图片

  • 2创建用户

技术图片

  • 3安装程序

技术图片

  • 4对应不同版本主机给与不同配置文件
    技术图片
    这些模板文件都在templates文件夹下
    notify对应的文件在handlers文件夹的main.yml中
    技术图片
  • 5拷贝网页数据
    技术图片

  • 6启动服务
    技术图片

  • 7测试

技术图片
配置文件中已将端口改为8080

一些总结

  • 各个目录作用

/roles/project/ :项目名称,有以下子目录

  • files/ :存放由copy或script模块等调用的文件
    templates/:template模块查找所需要模板文件的目录
    tasks/:定义task,role的基本元素,至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包含
  • handlers/:至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包含
  • vars/:定义变量,至少应该包含一个名为main.yml的文件;其它的文件需要在此文件中通过include进行包含
  • meta/:定义当前角色的特殊设定及其依赖关系,至少应该包含一个名为main.yml的文件,其它文件需在此文中通过include进行包含
  • default/:设定默认变量时使用此目录中的main.yml文件

以上是关于ansible-role角色:通过一个批量部署nginx范例学习role的主要内容,如果未能解决你的问题,请参考以下文章

server 2016 WDS服务批量部署windows系统

ansible-role写法

基于Saltstack批量部署apache

Ansible-Role编写之incloud/blockinfile/mode/systemd/

Ansible-Role编写之incloud/blockinfile/mode/systemd/

Ansible-playbook批量添加zabbix监控项目同步配置信息