zoukankan      html  css  js  c++  java
  • Ansible之ansible-playbook roles

    刚开始学习运用 playbook 时,可能会把 playbook 写成一个很大的文件,到后来可能你会希望这些文件是可以方便去重用的,所以需要重新去组织这些文件。

      基本上,使用 include 语句引用 task 文件的方法,可允许你将一个配置策略分解到更小的文件中。使用 include 语句引用 tasks 是将 tasks 从其他文件拉取过来。因为 handlers 也是 tasks,所以你也可以使用 include 语句去引用 handlers 文件。handlers 文件来自 ‘handlers:’ section。

      Playbook 同样可以使用 include 引用其他 playbook 文件中的 play。这时被引用的 play 会被插入到当前的 playbook 中,当前的 playbook 中就有了一个更长的的 play 列表。

      假如你希望在多个 play 或者多个 playbook 中重用同一个 task 列表,你可以使用 include files 做到这一点。 当我们希望为系统定义一个角色时,使用 include 去包含 task 列表是一种很好用的方法。需要记住的是,一个 play 所要达成 的目标是将一组系统映射为多个角色。

    将一整个playbook文件改写成采用roles完成

      先看目录层级关系:

    tree ./nginx
    ./nginx
    ├── hosts						# 主机清单inventory文件
    ├── roles						# roles角色目录
    │   └── nginx
    │       └── tasks				# nginx角色的tasks
    │           └── main.yml		# nginx角色要执行的tasks的yaml文件
    └── site.yml					# 这个playbook的主入口
    

      分别查看每一个文件的内容:

    nginx/hosts文件:

    [nginx]
    172.16.1.10
    

    nginx/site.yml文件:

    ---
    - hosts: all
      gather_facts: no
    
      roles:
        - nginx
    

    nginx/roles/nginx/tasks/main.yml文件:

    ---
    - name: Install Nginx
      yum: name=nginx state=present
    - name: Start Nginx Service
      service: name=nginx state=started
    

    检测语法

    ansible-playbook -i hosts site.yml --syntax-check
    
    playbook: site.yml
    

    执行playbook

    ansible-playbook -i hosts site.yml
    
    PLAY [all] ***************************************************************************************************************************************
    
    TASK [nginx : Install Nginx] *********************************************************************************************************************
    ok: [172.16.1.10]
    
    TASK [nginx : Start Nginx Service] ***************************************************************************************************************
    ok: [172.16.1.10]
    
    PLAY RECAP ***************************************************************************************************************************************
    172.16.1.10                : ok=2    changed=0    unreachable=0    failed=0
  • 相关阅读:
    求一个整数的划分
    HDU 1028 Ignatius and the Princess III
    HDU1215
    博弈论(2)
    阶乘的位数
    母函数详解
    SpragueGrundy FunctionSG函数博弈论(3)
    图的基本操作邻接表类型
    HDU 1536 SG函数应用
    顺序栈的实现
  • 原文地址:https://www.cnblogs.com/jie-fang/p/10293204.html
Copyright © 2011-2022 走看看