Ansible1.2新特性roles的介绍和使用
admin
2023-02-22 05:20:04
0

一、简介

Ansible1.2版本后引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷地include它们的一种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中

二、roles目录结构

官方推荐在/etc/ansible/roles目录下使用roles,但不是必须的,roles目录可以自行创建
Ansible1.2新特性roles的介绍和使用
     tasks-包含角色要执行的任务的主要列表,至少应该有main.yml文件,有其他的yml文件通过include进行包含
     handlers-包含处理程序(notify触发的任务),该角色甚至该角色之外的任何地方都可以使用这些处理程序。至少应该有main.yml文件
     defaults-角色的默认变量,至少应该有main.yml文件
     vars-角色的其他变量,至少应该有main.yml文件
     files-包含可以通过此角色部署的文件。
     templates-包含可以通过此角色部署的模板。
     meta-为此角色定义一些元数据,至少应该有main.yml文件

以部署grafana+influxdb+telegraf为例
目录结构如下:
Ansible1.2新特性roles的介绍和使用
在项目目录中,剧本与roles目录平级,roles目录下包含各角色目录,各角色目录中包含使用到的files,handlers,tasks,templates,vars;对于不使用的meta和defaults目录,最好排除。

三、roles示例

以部署grafana+influxdb+telegraf为例

3.1、需求

在node2上部署三件套,在node3上部署influxdb,配置文件中的有些参数使用变量,配置文件使用模板,更改配置文件后重启服务

3.2、部署剧本 deploy.yml

---
 - hosts: node2
   remote_user: root
   roles:
   - grafana
   - influxdb
   - telegraf
- hosts: node3
   remote_user: root
   roles:
   - influxdb

3.3、角色以grafana为例

roles/grafana/tasks/main.yml文件

---
- name: "copy grafana to destination server"
  copy:
    src: grafana-6.3.0-1.x86_64.rpm
    dest: /tmp/
- name: "Install the grafana rpm package locally"
  yum:
    name: /tmp/grafana-6.3.0-1.x86_64.rpm
    state: present
- name: "template the grafana.ini"
  template:
    src: grafana.ini.j2
    dest: /etc/grafana/grafana.ini
  notify: restart grafana

- name: "enable grafana"
  systemd:
    name: grafana-server
    state: restarted
    daemon_reload: yes
    enabled: yes

roles/grafana/templates/grafana.ini.j2模板配置文件

# The http port  to use
http_port = {{ http_port }}

roles/grafana/vars/main.yml 文件

http_port: 8000

roles/grafana/handlers/main.yml文件

- name: restart grafana
  systemd:
    name: grafana-server
    state: restarted
    daemon_reload: yes

3.4、hosts文件

/etc/ansible/hosts 
[node2]
192.168.143.131
[node3]
192.168.143.132 

3.5、执行deploy.yml

ansible-playbook deploy.yml

相关内容

热门资讯

终于懂了“数独大赛.开挂器?”... 终于懂了“数独大赛.开挂器?”确实真的有挂您好,数独大赛这个游戏其实有挂的,确实是有挂的,需要了解加...
【第一资讯】“杭麻圈.开挂器?... 【第一资讯】“杭麻圈.开挂器?”果然有透视挂您好,杭麻圈这个游戏其实有挂的,确实是有挂的,需要了解加...
我来教教您“微乐卡五星.可以开... 网上科普关于“微乐卡五星有没有挂”话题很是火热,小编也是针对微乐卡五星作*弊开挂的方法以及开挂对应的...
最新引进“杭州都莱.有挂吗?”... 您好:杭州都莱这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游戏...
【今日要闻】“手机麻将.有挂吗... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
最新引进“经典联盟牛牛.怎么开... 有 亲,根据资深记者爆料经典联盟牛牛是可以开挂的,确实有挂(咨询软件无需...
终于明白“圣盛晃晃麻将.开挂器... 网上科普关于“圣盛晃晃麻将有没有挂”话题很是火热,小编也是针对圣盛晃晃麻将作*弊开挂的方法以及开挂对...
【今日要闻】“十三十三水.辅助... 您好:十三十三水这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游...
今日重大消息“科尔沁麻将.辅助... 网上科普关于“科尔沁麻将有没有挂”话题很是火热,小编也是针对科尔沁麻将作*弊开挂的方法以及开挂对应的...
玩家分享攻略“大庆划水麻将.是... 家人们!今天小编来为大家解答大庆划水麻将透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...