Linux Ansible角色介绍

news2024/11/28 0:57:47

目录

角色的基础结构

角色来源与应用

Galaxy角色

系统角色

自定义角色


  1. 角色(roles)用于层次化、结构化地组织playbook
  2. roles通过标准化目录结构来装载变量文件、tasks(模块任务)、handlers(处理程序)、jinja2模板等其他资源,然后在play中调用该角色,就能够执行
  3. 定义roles可以实现更加轻松的重复利用ansible代码;只需通过复制相关的目录,就可以将角色从一个项目复制到另一个项目,然后在play中调用该角色就能够执行
  4. 在ansible中需要单独指定一个存放角色的路径,这个路径在ansible.cfg中的roles_path字段指定


角色的基础结构

README.md文件

声明了如何调用角色的模板,根据需要复制里面的内容粘贴到yml文件中进行调用

Defaults

此目录中的main.yml文件存放于角色会使用到的变量;并且这些变量所对应的值都是默认值(这些变量的优先级较低,使用角色时可以在play中对变量重新赋值,覆盖变量的默认值)

Files

存放角色任务引用的静态条件(例如copy模块要调用的文件)

Handlers

此目录中的main.yml文件包含ansible处理程序

当角色需要调用处理程序时,默认会在此目录的main.yml文件中调用处理程序

Meta

此目录中的main.yml文件用于描述角色的相关属性(例如作者、许可证等)

Tasks

此目录的main.yml描述了此角色需要执行的任务

在调用角色时,会执行此目录下的main.yml文件

Template

存放着角色所需要使用的jinja2模板文件

当没有指定绝对的模板路径时,会默认调用此目录中对应名称的模板文件

Tests

此目录包含清单和测试剧本文件,用于测试角色

Vars

此目录中的main.yml文件存放着用户所使用的变量;与defaults不同的是此文件中变量的优先级比较高,不会被轻易覆盖;确保了在调用角色时使用的变量为此目录文件中的变量值


角色来源与应用

Galaxy角色

Ansible galaxy是一个ansible内容公共资源库,包含数千个ansible角色

ansible-galaxy命令行工具

ansible-galaxy search                   在galaxy上搜索角色
ansible-galaxy install                  从galaxu上下载角色
              -r   从文件中安装多个角色
              -p   指定安装路径
ansible-galaxy init                     创建自定义角色

从文件中下载galaxy角色,文件的书写格式

src      角色来源(必须写)
version  角色的版本
name     将角色下载后的名称(默认为存储库的名称)

创建文件存放角色的下载路径
vim galaxyroles.yml
---
- src: http://materials/ phpinfo.tar
  name: phpinfo

从文件中下载角色到指定路径
ansible-galaxy install -r galaxyroles.yml -p /home/greg/ansible/roles/

使用galaxy角色

vim roles.yml
---
- hosts: web
  roles:
    - phpinfo

系统角色

rhel-system-roles软件包中包含了一部分系统的角色(直接下载此软件包,就可以使用此软件包包含的角色了);下载下来的角色存放在/usr/share/ansible/roles目录下

下载系统角色

yum install rhel-system-roles

ansible-galaxy list 查看所有角色

系统角色的作用

rhel-system-roles-kdump          配置kdump崩溃恢复服务
rhel-system-roles-network        配置网络接口
rhel-system-roles-postfix        使用postifix服务将主机配置为邮件传输代理
rhel-system-roles-selinux        配置和管理selinux
rhel-system-roles-timesync       配置时间同步(NTP)

使用系统角色

将需要的系统角色复制到ansible.cfg中roles_path字段对应的目录下
cp -r /usr/share/ansible/roles/rhel-system-roles.selinux/ /home/greg/ansible/roles/

查看文件中的README.md文件,编写yml文件调用角色实现所需功能
vim /home/greg/ansible/selinux.roles
---
- name: selinux
  hosts: web
  vars:
    selinux_policy: targeted
    selinux_state: enforcing
  role:
    - rhel-system-roles-selinux

自定义角色

可以创建一个自定义角色(ansible-galaxy init 角色名)  

ansible-galaxy init apache

在templates目录下创建jinja2模板

vim apache/templates/index.j2
Welcome to {{ ansible_facts['hostname'] }

配置tasks目录下的main.yml文件

vim apache/tasks/main.yml
---
# tasks file for apache
- name: install httpd
  yum:
    name: httpd
    state: present
  notify:
    - start apache
- name: index.html.j2
  template:
    src: index.html.j2
    dest: /var/www/html/index.html
    setype: httpd_sys_content_t

编写handlers下的maini.yml(触发器notify触发后执行此yml任务)

vim apache/handlers/main.yml
---
- name: start apache
  service:
    name: httpd
    state: started
    enabled: yes

然后创建yml文件调用角色

vim roles.yml
---
- host: web
  roles:
    - apache

运行yml

ansible-playbook roles.ym
只要此roles.yml不报错,就证明apache角色当中所有的yml语法都ok

验证httpd服务是否开启

ansible web -m shell -a "systemctl status httpd"

当让别人重复使用roles.yml文件时,可以将apache角色打压缩包传送给对端或上传到galaxy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/474673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

标准ACL配置

标准ACL配置 【实验目的】 掌握标准ACL的配置。 验证配置。 【实验拓扑】 实验拓扑如图1所示。 图1 实验拓扑 设备参数如表所示。 表1 设备参数表 设备 接口 IP地址 子网掩码 默认网关 R1 S0/3/0 192.168.1.1 255.255.255.252 N/A Gi0/0/0 192.168.2.1 255.…

大数据分析利器之Power BI,你是否已经掌握?(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【校招VIP】IT职位校招简历千万不要用两栏的模板,另外,告诉你个陷阱:越个性机会越少

前两天在简历指导的直播里,发现了不应该出现的一种简历格式问题。 有的同学喜欢用那种竖栏两栏的简历模板。 我们建议研发岗的校招,简历不要这么去写。 因为两栏的话,实际上有一个很大的问题。 因为简历上需要写项目经历,需要写…

你最关心的4个零代码问题,ChatGPT 帮你解答了!

作为人工智能(AI)新型聊天机器人模型 ChatGPT,刚上线5天就突破100万用户,两个多月全球用户量破亿,不愧为业界最炙热的当红炸子鸡。 ChatGPT 是一种语言生成模型,由 OpenAI 开发和训练。它是基于 Transform…

C语言函数大全-- s 开头的函数(1)

C语言函数大全 本篇介绍C语言函数大全-- s 开头的函数(1) 1. sbrk 1.1 函数说明 函数声明函数功能void *sbrk(intptr_t increment);它是一个 Unix 系统的函数,用于调整程序的堆空间。 参数: increment : 增加的堆空…

机器学习算法系列(五)-- 支持向量机(SVM)

机器学习算法系列之–支持向量机(揭开SVM的神秘面纱) 支持向量机(Support Vector Machine :SVM):二分类算法模型,数据集较小时,分类效果甚至优于神经网络。 其最大的特点在于&#x…

C++ muduo日志库的使用

muduo日志库的使用 一、引用二、使用方法2.1、引入头文件2.2、 启动日志库2.3、记录日志2.4、输出格式2.5、日志滚动 三、总结 一、引用 muduo是一个高性能的网络库,它的日志库采用了异步、多线程的方式来记录日志,其主要特点包括: 能够按大…

使用Pano2VR实现全景图切换和平面图效果

内容简介 本文在文章《使用Pano2VR实现背景音乐、放大/缩小、旋转、缩略图和直线/立体/鱼眼模式等》基础上,增加全景图切换和平面图效果;效果如下图(为了可以上传缩小屏幕,属于PC端运行): 实现过程 1. 运行…

【Bus】编写一个Demo虚拟的总线-设备-驱动模型

文章目录 1. 前言2. 总线驱动模型三要素2.1 总线2.2 设备2.3 驱动 3. Demo Code3.1 virt_bus_core.c3.2 virt_device.c3.3 virt_driver.c 4. 工程代码下载地址5. 参考资料 1. 前言 Linux平台为了驱动的可重用性,虚拟了很多的虚拟总线。很经典的就是platform总线&am…

Android Room数据库如何使用增删改查

先看运行效果图。 1.在app下的build.gradle。在dependencies{}闭包中添加如下依赖 //roomdef room_version "2.3.0"implementation "androidx.room:room-runtime:$room_version"annotationProcessor "androidx.room:room-compiler:$room_version&q…

爱奇艺DRM修炼之路

01 DRM的定义和作用 DRM,即数字版权管理(digital rights management),是在数字内容交易过程中,对知识产权进行保护的技术、工具和处理过程。它的目的是防止数字内容被未经授权的用户复制、修改和分发,以保护…

解读TaskMatrix.AI

ChatGPT在广泛的开放域任务上展现出令人瞩目的强大对话、上下文学习和代码生成能力,而且它所获得的常识知识还可以为特定领域的任务生成高级解决方案概要。不过,除了更强大的学习、理解和生成能力,ChatGPT还有哪些问题需要解决呢?…

《利用光体积描记图信号的模糊递推特性估计无袖带血压的级联卷积神经网络模型》阅读笔记

目录 一、论文摘要 二、论文十问 Q1:论文试图解决什么问题? Q2:这是否是一个新的问题? Q3:这篇文章要验证一个什么科学假设? Q4:有哪些相关研究?如何归类?谁是这一…

城市的智能进化,汇成数字中国的璀璨银河

著名城市规划理论家刘易斯芒福德在《城市发展史——起源、演变和前景》中提出,“城市从其起源时代开始便是一种特殊的构造,它专门用来储存并流传人类文明的成果。这种构造致密而紧凑,足以用最小的空间容纳更多的设施。” 他认为,城…

我们如何将 Amazon Snowcone 送入轨道

我从 4 或 5 岁起就一直是太空旅行和美国太空计划的粉丝。我记得读过关于水星和双子星座计划的文章,兴奋地看着鹰号登月舱降落在月球上。 如今,随着每次发射到达近地轨道 (LEO) 的成本似乎都在不断下降,因此有比以往任何时候都要更多的机会&…

建设元宇宙基础设施——PPIO边缘云在云渲染/云游戏的思考和实践

关于“元宇宙”的讨论越发火热,而建设元宇宙不可避免需要布设基础设施,LiveVideoStackCon 2022 北京站邀请到PPIO边缘云联合创始人——王闻宇,同大家探讨元宇宙网络时延的最优解–边缘云基础设施的架构与建设,并介绍PPIO边缘云在泛…

Kafka Broker是如何基于Reactor模式来处理海量用户请求的?

介绍 https://kafka.apache.org/0110/documentation.html 参数名描述默认值queued.max.requestsbroker全局唯一的请求队列,用来保存请求500num.io.threads用来处理请求的线程数8 参考博客 [1]

Python环境设置

在了解Python语言的历史和介绍之后,要想开始学习Python语言,还需要在计算机中安装Python编译环境,本期就来聊聊怎么在计算机中安装Python环境。 在计算机中添加Python环境的几种选择: 直接安装Python程序,即Python官…

Spring Boot配置文件

日升时奋斗,日落时自省 目录 1、配置文件作用 2、配置文件格式 2.1、使用注意 3、properties配置文件 3.1、注释中文问题 3.2、properties语法格式 3.3、读取配置文件 3.3.1、Value读取 3.3.2、PropertySource读取 3.3.3、原生方式读取配置文件 3.4、pr…

C++-FFmpeg-1-VS2019-x264-fdk_aac-x265-pdb-QT5.14-makefile

1.环境搭建: 1.1VS2019 用的是控制台编译。 1.2.msys2 模拟linux的命令和指令。 2.源码编译与安装: 2.1.x264: ffmpeg :编码用X264 2.2x265: ffmpeg :编码用X265 c写的。msys2编译。 2.3.fdk-aac 音频编码。 2.4 ffmpeg源码4.3: 2.5.SDL2.0 视频渲…