【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}}。

相关推荐
MC皮蛋侠客6 小时前
使用 GoZero 快速构建高性能微服务项目
微服务·云原生·架构·go
Henry Zhu1239 小时前
进阶:VPP NAT44-EI 全面源码解析
网络·物联网·计算机网络·云原生·云计算
❀͜͡傀儡师15 小时前
K8s 部署Doris 高可用集群
云原生·容器·kubernetes
星哥说事15 小时前
服务网格:Istio / Linkerd 流量管理与监控解析*
云原生·istio
櫻花17 小时前
微服务各大组件总结
微服务·云原生·架构
-大头.17 小时前
微服务架构深度演进与实践指南
微服务·云原生·架构
Henry Zhu12318 小时前
VPP中FIB(转发信息库)和VRF(虚拟路由转发)详解:从设计理念到实际应用
网络·计算机网络·云原生·云计算·智能路由器
GOTXX20 小时前
openEuler AI与云原生 构建高效智能的数字基础设施底座
人工智能·云原生
车传新21 小时前
Ansible
ansible
许泽宇的技术分享21 小时前
当AI竞赛遇上云原生:EvalAI如何用450+挑战赛重新定义机器学习评估标准
人工智能·机器学习·云原生