当前位置: 首页 > news >正文

飞天使-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"
http://www.lryc.cn/news/260367.html

相关文章:

  • FPGA - 1、Simulink HDL coder模型例化到FPGA
  • 02基于matlab的卡尔曼滤波
  • 基础算法(3):排序(3)插入排序
  • Vue3-18-侦听器watch()、watchEffect() 的基本使用
  • mysql 5.7.34升级到5.7.44修补漏洞
  • 基于电子密码锁具有掉电存储系统设计
  • 清华大学考研复试上机题之二叉树的遍历
  • java全栈体系结构-架构师之路(持续更新中)
  • 【C语言】超详解strncpystrncatstrncmpstrerrorperror的使⽤和模拟实现
  • 【Spring Boot 】Spring Boot 常用配置总结
  • Day60力扣打卡
  • Axure的动态图使用以及说明
  • 力扣 | 437. 路径总和 III
  • 如何部署自己的服务渲染页面为Pdf文档
  • 常用的调试方法(段错误产生原因)
  • [云原生] Docker 入门指南:镜像、容器、卷和网络解析
  • 机器学习-聚类问题
  • leetcode9.回文数java解法
  • 图论专栏一《图的基础知识》
  • 得帆云为玉柴打造CRM售后服务管理系统,实现服务全过程管理|基于得帆云低代码的CRM案例系列
  • 智能优化算法应用:基于蝠鲼觅食算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • vue2 以及 vue3 自定义组件使用 v-model使用默认值以及自定义事件
  • 《PCL多线程加速处理》-滤波-统计滤波
  • 插入排序——直接插入排序和希尔排序(C语言实现)
  • 【Linux系统化学习】进程地址空间 | 虚拟地址和物理地址的关系
  • Navicat 技术指引 | 适用于 GaussDB 分布式的模型功能
  • 四十五、Redis主从
  • Spring源码学习一
  • 小红书种草和抖音传播区别是什么?
  • 论文阅读《Parameterized Cost Volume for Stereo Matching》