【Ansible】将文件部署到受管主机知识点

1. 常用文件模块有哪些?

**答:**ansible.builtin中的常用文件模块:

-blockinfile:插入、更新或删除由可自定义标记线包围的多行文本块。

-copy:将文件从本地或远程计算机复制到受管主机上的某个位置。与file模块一样,copy模块还可以设置文件属性,包括SELinux上下文。

-fetch:此模块的作用和copy模块类似,但以相反方式工作。此模块用于从远程计算机获取文件到控制节点,并将它们存储在按主机名组织的文件树中。

-file:设置权限、所有权、SELinux上下文以及常规文件、符号链接、硬链接和目录的时间戳等属性。此模块还可以创建或删除常规文件、符号链接、硬链接和目录。其他多个与文件相关的模块支持与f1ile模块相同的属性设置选项,包括copy模块。

-lineinfile:此模块可以在更改文件中的某一行时使用。

-stat:检索文件的状态信息,类似于Linux stat命令。

ansib le.posix中的常用文件模块:

-patch:通过GNU patch将补丁应用到文件。

-synchronize:围绕rsync命令的打包程序可加快和简化常见任务。

2.模块有哪些用例?

**答:**ansible.builtin.file模块用于确保受管主机上存在文件,如果不存在则创建一个空文件,如果存在,则更新其修改时间;

ansible.builtin.file模块用于修改文件属性,确保新的或现有的文件具有正确的权限和SELinux类型;

ansible.builtin.copy模块用于将控制节点上Ansible工作目录中的文件复制到选定的受管主机;

ansible.builtin.fetch模块用于从受管主机检索文件;

lineinfile模块用于确保现有文件中存在特定的单行文本;

ansible.buitin.blockinfile模块用于将文本块添加到现有文件;

使用ansible.builtin.file模块和state:absent 参数从受管主机中删除文件;

ansible.builtin.stat模块用于检索受管主机上的文件状态,检索文件的事实,类似于Linux stat命令;

ansible.posix.synchronize模块用于同步控制节点和受管主机之间的文件,包括同步目录。

3.什么是Jinja2模板?

**答:**Jinja2 模板是动态自定义文件部署,通过动态逻辑(变量、条件、循环)实现文件的个性化生成,以.j2为文件扩展名。

Jinja2模板由多个元素组成有数据、变量和表达式。在呈现Jinja2模板时,这些变量和表达式被替换为对应的值。模板中通过{{变量名}}引用变量,使用的变量可以在playbook的vars部分中指定。可以将受管主机的事实用作模板中的变量。

4.Jinja2 核心语法与用法

:循环语句:通过{% for 元素 in 列表 %}...{% endfor %}遍历列表生成重复内容(如配置文件中的多个模块、节点)。

条件判断:通过{% if 条件 %}...{% elif 条件 %}...{% else %}...{% endif %}实现基于变量的动态内容生成。

5. .Jinja2 过滤器

**答:**通过 | 使用过滤器对变量进行处理(格式化、转换等),如

to_json:筛选条件使用JSON格式化表达式输出,{{output I to_json 3}}

to_yaml:筛选条件则使用YAML格式化表达式输出,{{output | to_yaml}}。

相关推荐
名字还没想好☜1 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
Cloud云卷云舒2 小时前
AI Agent记忆系统:分层记忆体系的技术架构与实践
云原生·ai-native·haishandb
Ulyanov3 小时前
Python雷达电子对抗仿真引擎(一):打破单体瓶颈,构建微服务与ECS架构的顶层设计
开发语言·python·微服务·云原生·架构·雷达电子对抗
张忠琳17 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
阿里云云原生19 小时前
让 AI Agent 看见正在发生的业务,阿里云 EventHouse 正式商业化
云原生
AOwhisky20 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
码上上班21 小时前
Ansible课程
ansible
微三云 - 廖会灵 (私域系统开发)1 天前
电商系统从单体到微服务拆分实践:拆什么、怎么拆、拆完后怎么办
微服务·云原生·架构
前端Baymax1 天前
K8s PodCrashLoopBackOff假阳性排查
云原生·容器·kubernetes
guslegend1 天前
领域驱动设计,微服务设计为什么要选择DDD?
微服务·云原生·架构