Linux Ansible角色介绍

这篇具有很好参考价值的文章主要介绍了Linux Ansible角色介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

角色的基础结构

角色来源与应用

Galaxy角色

系统角色

自定义角色


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

Linux Ansible角色介绍


角色的基础结构

Linux Ansible角色介绍

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模板文件

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

Linux Ansible-Jinjia2模板_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/130394010?spm=1001.2014.3001.5501Tests

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

Vars

此目录中的main.yml文件存放着用户所使用的变量;与defaults不同的是此文件中变量的优先级比较高,不会被轻易覆盖;确保了在调用角色时使用的变量为此目录文件中的变量值Linux Ansible管理变量、管理事实、管理机密_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/130392902?spm=1001.2014.3001.5501


角色来源与应用

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 查看所有角色

Linux Ansible角色介绍

系统角色的作用

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

Linux Ansible角色介绍

在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

Linux Ansible角色介绍

验证httpd服务是否开启

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

Linux Ansible角色介绍

当让别人重复使用roles.yml文件时,可以将apache角色打压缩包传送给对端或上传到galaxy文章来源地址https://www.toymoban.com/news/detail-429003.html

到了这里,关于Linux Ansible角色介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux:概述 、安装 、文件与目录结构 、vim编辑器 、网络配置 、远程登录 、系统管理 、基础命令 、软件包管理 、克隆虚拟机 、shell编程

    2.1.1、Linux是什么? Linux是一个操作系统(OS) 所谓的操作系统就是直接用来操作计算机底层硬件的软件。 2.1.2、Linux的出现 官网: https://www.centos.org/ 进入官网进行下载 有很多的镜像,以阿里云的为例: 3.3.1、下载 官网: https://www.vmware.com/ 这是下载的企业版,30天试用期,可

    2024年02月05日
    浏览(61)
  • ansible——roles 角色

    roles用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。 简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷的include它们的一种

    2024年02月14日
    浏览(31)
  • Ansible 创建使用角色

    使用 Ansible Galaxy 和要求文件 /ansible/roles/requirements.yml 。从以下 URL 下载角色并安装到 /ansible/roles : http://materials/haproxy.tar 此角色的名称应当为 balancer http://materials/phpinfo.tar 此角色的名称应当为 phpinfo 创建成功  

    2024年02月11日
    浏览(32)
  • [ansible] playbook角色

    Roles又称为角色,playbook被称为剧本。Roles角色是自1.2版本之后引入的新特性,用于层次性、结构化的组织剧本   roles能够根据层次型结构自动装载变量文件、任务集、以及触发的动作等,要使用roles只需要在剧本中使用include命令引入即可 简单的来说,roles就是分别将变量、文

    2024年02月21日
    浏览(42)
  • 从 Ansible Galaxy 使用角色

    根据下列要求,创建一个名为 /home/curtis/ansible/roles.yml 的 playbook :     playbook 中包含一个 play, 该 play 在 balancers 主机组中的主机上运行并将使用 balancer 角色。         此角色配置一项服务,以在 webservers 主机组中的主机之间平衡 Web 服务器请求的负载。         浏览到

    2024年02月12日
    浏览(30)
  • 使用 Ansible Galaxy 安装角色

        使用 Ansible Galaxy 安装角色     使用 Ansible Galaxy 和要求文件 /home/curtis/ansible/roles/requirements.yml 。从以下 URL 下载角色并安装到 /home/curtis/ansible/roles :         http://rhgls.area12.example.com/materials/haproxy.tar 此角色的名称应当为 balancer         http://rhgls.area12.example.com//materials/

    2024年02月12日
    浏览(33)
  • ansible剧本中的角色

    1.1 roles角色的作用? 可以把playbook剧本里的各个play看作为一个角色,将各个角色打的tasks任务、vars变量、template模版和copy、script模块使用的相关文件等内容放置在指定角色的目录里统一管理,在需要的时候可在playbook中使用roles角色直接调用即可。 1.2 roles的目录格式 1.3 调用

    2024年02月21日
    浏览(35)
  • Ansible 使用 RHEL 系统角色

    安装 RHEL 系统角色软件包,并创建符合以下条件的 playbook /home/greg/ansible/timesync.yml      在所有受管节点上运行     使用 timesync 角色     配置该角色,以使用当前有效的 NTP 提供商     配置该角色,以使用时间服务器 172.25.254.254     配置该角色,以启用 iburst 参数  

    2024年02月11日
    浏览(26)
  • ansible剧本之role角色模块

    roles用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。 简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷的include它们的一种

    2024年02月12日
    浏览(37)
  • vue项目结构目录介绍

    build 文件夹 及 子目录 这里面是一些webpack的配置,主要用于项目打包时的一些设置。这里不去更详细的深入,相关的文件及配置会在后面用到时在详细的介绍。 config 文件 及 子目录 这个文件夹里装的是整个项目 开发运行时的一些配置,比如npm run dev 时 项目的启动端口 之类

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包