ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ansible之roles使用(四)

2021-09-06 13:03:53  阅读:162  来源: 互联网

标签:httpd name roles cat ansible conf 使用 main yml


1 roles的介绍

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

 

2 roles的作用

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

 

3 目录结构

在这里插入图片描述

 

案例

目录结构

roles/
└── httpd                                      #调用名
    ├── handlers                             #重启触发器
    │   └── main.yml
    ├── role_httpd.yml                    #调用文件
    ├── tasks                                    #工作集合
    │   └── main.yml
    ├── templates                            #模板
    │   ├── httpd.conf.c6.jinja2
    │   └── httpd.conf.c7.jinja2
    └── vars                                       #变量
        └── main.yml

 

分步走

1 cat httpd/tasks/main.yml

- name: install httpd package
  yum: 
    name: httpd 
    state: present

- name: install configure file
  template: src=httpd.conf.c{{ ansible_distribution_major_version }}.jinja2 dest=/etc/httpd/conf/httpd.conf
  tags: instconf

  notify: 
    - restart httpd service

- name: start httpd service
  service: 
    name: httpd
    state: started 
    enabled: true

 

2  cat httpd.conf.c6.jinja2 

   cat  httpd.conf.c7.jinja2

   就是httpd 主配置文件 复制两份  然后修改了端口号

  Listen {{ httpd_port }}

 

3 cat httpd/vars/main.yml

httpd_port: 8080

 

4 cat httpd/handlers/main.yml 

- name: restart httpd service
  service:
     name: httpd
     state: restarted

 

5 调用文件方式

cat httpd/role_httpd.yml

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

 

关于调用文件的方式挺多的 这里就不多说了

关于调用文件的方式挺多的 这里就不多说了

 

开始模拟执行

ansible-playbook httpd/role_httpd.yml -C

命令结果

 

标签:httpd,name,roles,cat,ansible,conf,使用,main,yml
来源: https://www.cnblogs.com/tanff/p/15233237.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有