• 11.Ansible.roles角色


    roles角色

    最佳组织playbook的方式是通过roles角色的方式来组织

    roles
    用一个已知的文件结构(且必须是这样),它会自动加载vars、tasks、handlers、template、更方便进行调用。
    在创建新角色时,最关键的便是能够正确理解目录结构。
    通俗来说,就是要把正确的信息放入正确的目录中,这样在调用角色时才能有正确的效果。

    在这里插入图片描述


    文件中,只能存在main.yml 这个文件,就是这么定义的。

    步骤:

    1.创建roles目录结构,手动创建、或者通过 ansible-galaxy init nginx初始化一个,
    2.编写yml文件,功能,tasks任务| handlers | templates,
    3.写一个playbook,调用该roles。


    tree nginx

    nginx
    ├── files #存放的配置文件,用copy可以直接调用
    ├── handlers #触发器
    ├── meta #依赖间关系
    ├── tasks #任务
    ├── templates #模板文件template可以直接调用
    └── vars #变量



    安装nginx案例

    1.创建roles目录结构
    创建nginx目录结构
    mkdir nginx /{tasks,handlers,templates} -p


    2.编写要执行的任务 (yml文件)
    2.1.我这里先写tasks所要执行的任务
    vim nginx/tasks/main.yml

    1.安装nginx
    2.配置nginx
    3.启动nginx

    注意,这里的templates模板文件的src,直接写相对路径就行,模板文件必须都放在templates文件夹中
    notify所调用的handlers,也必须写在handlers目录下的main.yml文件中
    在这里插入图片描述


    2.2.编写notify所调用的handlers的main.yml文件
    vim nginx/handlers/main.yml
    在这里插入图片描述


    2.3准备templats目录中的模板文件(也就是Nginx的配置文件)
    cp /etc/nginx/nginx.conf nginx/templates/nginx.conf.j2

    这里用到了facts变量,先抓取到被控端CPU的核心数的变量,推送配置文件之前,会先把配置文件中的变量进行引用,替换成具体的变量值,最后推送配置文件。
    在这里插入图片描述


    2.4.到此部署nginx所要执行的任务已经写好了
    在这里插入图片描述


    3.写一个playbook,调用该角色(roles)

    起的角色名称是什么,这里就调用什么
    在这里插入图片描述
    在这里插入图片描述

    执行playbook
    在这里插入图片描述

    这种编排方式达到了我们的预期
    流程还是一样的安装、配置、启动
    只不过是将不同的任务,分类放到不同文件夹下面,让整个目录清晰又层次感



  • 相关阅读:
    k8s安装——ubuntu
    C# 使用AForge调用摄像头
    Flink
    一文掌握虚拟机
    实验22:轻触开关实验
    TV蓝牙无法被搜索问题解决记录:REQUEST_DISCOVERABLE ActivityNotFoundException
    Repetition Improves Language Model Embeddings论文阅读笔记
    【语音变速】基于matlab语音变速变调【含Matlab源码 2110期】
    前端性能测试工具-lighthouse
    隆云通管道温湿度传感器
  • 原文地址:https://blog.csdn.net/Wangjiachenga/article/details/127106603