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

云原生俱乐部-RH294知识点归纳(2)

突然发现ansible课程的内容也不是很多,该系列的第一篇就包含了绝大多数的内容了。毕竟这个课程只是介绍工具,不存在什么原理的内容,会用能够记住就好了。

至于有些使用技巧的话,需要在做项目的时候积累了。不过课程临近尾声,面临的将是秋招,依旧始终担心学的不足,实际上也确实如此。但是我觉得我还是比较认真的,当然光是认真并没有用,只有学会了才有用。


这篇的内容比较少的,和今天ansible课程讲的内容同步,所以我会在这一篇讲一讲常用的ansible模块,以及一些使用ansible工具时需要注意的地方。本文的主要内容是将文件部署到受管主机和管理复杂的play和playbook两部分内容。

将文件部署到受管主机

其实这一部分主要讲的就是ansible的模块功能作用,包括ansible.builtin.file和ansible.builtin.copy两个模块,还有jinja2模板的使用,需要用到ansible.builtin.template模块。

[1]在主机上修改和拷贝文件

当然了,文件管理模块不只是file和copy,还有很多。(1)blockinfile:插入、更新、删除自定义标线包围的多行文本块;(2)copy:将文件从本地或远程主机复制到受管主机;(3)fetch:将受管主机的文件复制到本地按主机名组织的文件树中;(4)file:删除或创建文件和目录,可以设置它们的权限,所有者、selinux上下文等;(5)lineinfile:保证特定行位于某文件中。

[2]使用Jinja2模板部署自定义文件

jinja2模板由数据、变量、表达式组成。可以使用循环结构{% for i in items %} {% endfor %},条件语句{% if variable %} {% endif %}(如果varible为true,则执行)。

{# COMMENT #}表示注释,{{ EXPR }}用于输出表达式的结果或变量的值。jinja2支持过滤器,将数据进行格式化,如{ output | to_json }或者{ output | to_yaml }分别转化为json和yml格式文件。

ansible.builtin.template模块可以将jinja2模板部署到目标主机上,src指定jinja2模板来源,dest则是要在目标主机的创建的文件。jinja2文件中的变量可以来自playbook中的vars语句中,也可以是收集的事实。

管理复杂的play和playbook

[1]主机模式

在ansible的play中可以通过主机模式来匹配主机清单中的受管主机(hosts语句)。并且支持使用通配符等多种方式来匹配,如ungrouped表示未分组的主机,all是所有主机,可以使用通配符*匹配主机清单的主机。

还可以使用列表来表示多个主机或主机组,在列表中使用&表示主机组之间或者主机和主机组之间取交集,!则表示单独不用某个主机或主机组,建议将列表的主机模式放在单引号里,确保正确解析。

[2]导入和包含文件

在playbook中可以使用其他play或者task,并且可以为外部的play和task设置变量vars。不过要注意的是,在ansible2.4之后,include_playbook语句已经弃用,只有include_tasks语句。

由于include在运行时解析,而import在运行开始前解析,所以使用ansible-navigator run --list-task的时候可以看到import导入文件里面的任务,但是看不到include包含文件里面的任务。

并且在使用条件语句的时候,import语句会让外部文件里的所有task都应用该条件语句,但是include语句来说,只是使用include语句的task会应用该条件语句。

http://www.dtcms.com/a/343343.html

相关文章:

  • EEMD-LSTM模型择时策略 --- 1.EEMD分解与LSTM模型搭建
  • 开源,LangExtract-Python库用LLM从非结构化文本提取结构化信息
  • 生产环境的 MySQL 数据库能用 Docker 吗?
  • Spring面试宝典:Spring IOC的执行流程解析
  • ES_数据存储知识
  • 基于SpringBoot的宠物用品系统【2026最新】
  • odoo-063 pip 安装 Segmentation fault (core dumped),曲线救国
  • Vue3 + TypeScript全局阻止非输入区域的Backspace键,防止回退页面
  • Redis实战-基于Session实现分布式登录
  • 深度学习——yolo学习
  • AI模型部署 - 大语言模型(LLM)部署技术与框架
  • Android auncher3实现简单的负一屏功能
  • 基于YOLOv8-SEAttention与LLMs融合的农作物害虫智能诊断与防控决策系统
  • 运动数据采集如何帮助克里斯·凯尔飞跃迎面驶来的F1赛车
  • 基于IEEE-754浮点数格式的matlab仿真
  • Day24 目录遍历、双向链表、栈
  • Mac电脑 3D建模工具--犀牛Rhino
  • 【个人网络整理】NOIP / 省选 /NOI 知识点汇总
  • 视频孪生技术在城市政务数字化转型中的应用与价值探索
  • ES_映射
  • Nacos-10--认识Nacos中的Raft协议(Nacos强一致性的实现原理)
  • VirtualBox 安装 Ubuntu Server 系统及 Ubuntu 初始配置
  • 区块链联邦学习思路一
  • 14、软件实现与测试
  • 实践题:智能健康监测系统设计方案
  • centos下安装Nginx(搭建高可用集群)
  • 亚马逊产品排名提升策略:从传统运营到AI驱动的智能化突破
  • 《信任链:幽灵签名》
  • 近端策略优化 (PPO) 算法深度解析
  • 智能求职推荐系统