zoukankan      html  css  js  c++  java
  • 3.3 playbook roles

    ansible role

    ansilbe自1.2版本引入的新特性,用于层次性、结构化地组织playbook;
    roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。
     
    简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们的一种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。
     
    #创建role的步骤
    (1) 创建以roles命名的目录;
    (2) 在roles目录中分别创建以各角色名称命名的目录,如webservers等;
    (3) 在每个角色命名的目录中分别创建files、handlers、meta、tasks、templates和vars目录;用不到的目录可以创建为空目录,也可以不创建;
    (4) 在playbook文件中,调用各角色;
     
    #role内各目录中可用的文件
    tasks:至少应该包含一个名为main.yml的文件,其定义了此角色的任务列表;此文件可以使用include包含其它的位于此目录中的task文件;
    files:存放由copy或script等模块调用的文件;
    templates:template模块会自动在此目录中寻找Jinja2模板文件;
    handlers:此目录中应当包含一个main.yml文件,用于定义此角色用到的各handler;在handler中使用include包含的其它的handler文件也应该位于此目录中;
    vars:应当包含一个main.yml文件,用于定义此角色用到的变量;
    meta:应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系;
    default:为当前角色设定默认变量时使用此目录;应当包含一个main.yml文件;
     
    示例:定义一个简单的roles
    创建相关目录
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [root@node1 ~]# mkdir -pvansible_playbooks/roles/{webserver,dbserver}/{tasks,files,templates,meta,handlers,vars}
    [root@node1 ~]# tree ansible_playbooks/
    ansible_playbooks/
    └── roles
        ├── dbserver
        │  ├── files
        │  ├── handlers
        │  ├── meta
        │  ├── tasks
        │  ├── templates
        │  └── vars
        └── webserver
            ├── files
            ├── handlers
            ├── meta
            ├── tasks
            ├── templates
            └── vars

    15 directories, 0 files


    Webserver创建配置文件
    1 [root@node1 ~]# cp /etc/httpd/conf/httpd.confansible_playbooks/roles/webserver/files/

    在tasks目录下,定义yml,此处只需要定义执行的任务
     

    在handlers目录下,定义handlers
     
    在目录名同级目录,定义roles,只需要指明运行的主机和用户身份已经调用的角色即可
     
    执行结果
     

    定义多个roles,实现重用效果
    示例:在4.101配置web服务,在4.102配置数据库,在4.103及配置web又配置数据库;

    复制mysql配置文件
    1 [root@node1 ~]# cp /etc/my.cnfansible_playbooks/roles/dbserver/files/


    定义tasks
     

    定义handlers
     

    定义site.yml,在4.101配置web服务,在4.102配置数据库,在4.103及配置web又配置数据库。
     

    执行结果:
     





  • 相关阅读:
    Bit Manipulation
    218. The Skyline Problem
    Template : Two Pointers & Hash -> String process
    239. Sliding Window Maximum
    159. Longest Substring with At Most Two Distinct Characters
    3. Longest Substring Without Repeating Characters
    137. Single Number II
    142. Linked List Cycle II
    41. First Missing Positive
    260. Single Number III
  • 原文地址:https://www.cnblogs.com/51runsky/p/4665908.html
Copyright © 2011-2022 走看看