zoukankan      html  css  js  c++  java
  • ansible之roles使用

    ansible roles

    一. roles作用

    主要作用是重用playbook,例如我们无论安装什么软件都会安装时间同步服务,那么每个playbook都要编写ntp task。我们可以将ntp task写好,等到用的时候再调用就行了。ansible中将其组织成role,他有着固定的组织格式。以便playbook调用

    二. relos介绍

    以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等;相当于函数的调用把各个功能切割成片段来执行

    1. 层级目录结构

    role_name/:我们定义的role的名字
        file/:用于存放copy或script等模块调用的函数
        tasks/:用于定义各种task,此目录一定要有main.yml;其他文件需要main.yml包含调用
        handlers:用于定义各种handlers,此目录一定要有main.yml;其他文件需要main.yml包含调用
        vars:用于定义variables,此目录一定要有main.yml;其他文件需要main.yml包含调用
        templates/:存储由template模块调用的模板文本;
        meta/:定义当前角色的特殊设定及其依赖关系,此目录中至少应该有一个名为main.yml的文件;其它的文件需要由main.yml进行“包含”调用;
        default/:此目录中至少应该有一个名为main.yml的文件,用于设定默认变量;

    2. 在playbook中调用role

    role存放的路径在配置文件/etc/ansible/ansible.cfg中定义

    roles_path    = /etc/ansible/roles:/usr/share/ansible/roles
    第一种:
    - hosts: HOSTS
      remote_user: root
      roles:
        - ROLE_NAME1
        - ROLE_NAME2
    
    第二种:除了字典第一个元素指明调用的role,后面是传递给role的变量
    - hosts: HOSTS
      remote_user: root
      roles:
      - { role: ROLE_NAME1, VARIABLE1: VALUE1, ...}
    
    第三种:when指明role调用的条件
    - hosts: HOSTS
      remote_user: root
      roles:
      - { role: ROLE_NAME1, when: CONDITIONS}

    3. 示例

    1). 目录结构:

    2). tasks文件

    - name: install httpd package
      yum: name=httpd state=present
    - name: install configure file
      template: src=httpd.conf.c{{ ansible_distribution_major_version }}.j2 dest=/etc/httpd/conf/httpd.conf
      tags: instconf
      notify: restart httpd service
    - name: start httpd service
      service: name=httpd state=started enabled=true

    3). handlers文件

    4). 模板文件

    5). 变量

    6). playbook文件

    - hosts: webservers
      remote_user: root
      roles:
      - { role: httpd }

    7). 测试playbook文件

    8). 运行playbook并查看httpd端口

  • 相关阅读:
    设计模式之代理模式
    Java8内存模型—永久代(PermGen)和元空间(Metaspace)
    使用jconsole分析内存情况-JVM
    JVM(Java虚拟机)优化大全和案例实战
    JVM调优总结 -Xms -Xmx -Xmn -Xss
    聊聊jvm的PermGen与Metaspace
    Jconsole
    【Java VisualVM】使用 VisualVM 进行性能分析及调优
    JAVA基础(10)——IO、NIO
    JAVA基础(9)——容器(3)——并发容器
  • 原文地址:https://www.cnblogs.com/yhq123/p/11210052.html
Copyright © 2011-2022 走看看