飞天使-linux操作的一些技巧与知识点5-ansible之roles

2023-12-15 15:30

本文主要是介绍飞天使-linux操作的一些技巧与知识点5-ansible之roles,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

        • roles
          • 批量替换文件
        • role 的依赖关系
        • role 的实际案例

roles
 tasks 和 handlers ,那怎样组织 playbook 才是最好的方式呢?简
单的回答就是:使用 Roles
Roles 基于一个已知的文件结构,去自动的加载 vars,tasks 以及 handlers 以便
playbook 更好的调用。
roles 相比 playbook 的结构更加的清晰有层次,但 roles 显然要比 playbook
更加复杂难理解!
比如:我们无论安装什么软件都会安装时间同步服务,那么每个 playbook 都要编
写时间同步服务的 task 。此时我们可以将时间同步服务 task 任务编写好,等到需
要使用的时候进行调用就行了。roles 官方目录结构,必须按如下方式定义。在每个目录中必须有 main.yml 文
件,这些属于强制要求[root@m01 ~]# cd /etc/ansible/roles
[root@m01 roles]# mkdir
{nfs,rsync,web}/{vars,tasks,templates,handlers,files,meta} -p
[root@m01 roles]# tree
.
├── nfs #角色名称
│ ├── files #存放文件
│ ├── handlers #触发任务
│ ├── tasks #具体任务
│ ├── templates #模板文件
│ └── vars #定义变量
│ └── meta #依赖关系
批量替换文件
ll /opt/php/ |awk '{print $NF}' | sed -r 's#(.*)#- /opt/php/\1#g'
role 的依赖关系
roles 允许在使用时自动引入其他 role , role 依赖关系存储在
meta/main.yml 文件中。
例如: 安装 wordpress 项目时:
1.需要先确保 nginx 与 php-fpm 的 role 都能正常运行
2.然后在 wordpress 的 role 中定义,依赖关系
3.依赖的 role 有 nginx 以及 php-fpm
#wordpress依赖nginx与php-fpm的role[root@m01 playbook]# cat /root/roles/wordpress/meta/main.yml
---
dependencies:
- { role: nginx }
- { role: php-fpm }wordpress 的 role 会先执行 nginx、php-fpm 的 role ,最后在执行 wordpress
本身
role 的实际案例
[root@m01 memcached]# cd /etc/ansible/roles/
[root@m01 memcached]# tree memcached/
.
├── tasks
│ ├── main.yml
│ ├── start.yml
│ ├── template.yml
│ └── yum.yml
└── templates
└── memcached.j2[root@m01 memcached]# cat tasks/main.yml
- include: yum.yml
- include: template.yml
- include: start.yml
[root@m01 ~]# cat tasks/yum.yml
- name: install memcached package
yum: name=memcached
[root@m01 ~]# cat tasks/template.yml
- name: Copy memcahed conf
template: src=memcached.j2 dest=/etc/sysconfig/memcached
[root@m01 ~]# cat templates/memcached.j2
PORT="11211"
USER="memcached"
MAXCONN="{{ ansible_memtotal_mb//4 }}"
CACHESIZE="64"
OPTIONS=""
[root@m01 ~]# cat tasks/start.yml
- name: start memcached
service: name=memcached state=started enabled=yes[root@m01 ~]# cat site.yml
- hosts: "{{ host }}"
remote_user: root
roles:
- role: memcached
# 执行playbook
[root@m01 ~]# ansible-playbook site.yml -e "host=10.0.0.1"

这篇关于飞天使-linux操作的一些技巧与知识点5-ansible之roles的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/496936

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4