Ansible文件管理与Jinja2模板
一、修改文件并将其复制到主机
1.blockinfile模块说明:
插入、更新或删除任意的多行文本块。
注释块标记插入到块的开头和结尾以确保幂等性。
2.copy模块说明:
将文件从本地或远程计算机复制到主机,还可以设置文件属性,包括SELinux上下文。
eg:用于将控制节点上Ansible工作目录中的文件复制到选定的受管主机。
3.fetch模块说明:
与copy模块相反,从远程计算机获取文件到控制节点,并将它们存储在主机名下。
4.file模块说明:
设置权限、所有权、SELinux上下文及创建和删除常规文件、符号链接、硬链接和目录等属性。
5.lineinfile在什么时候使用?
在更改文件中的某一行时使用。
6.stat模块说明:
检索文件的状态信息,类似Linux stat命令。
7.rsync的优点?
围绕rysnc命令的打包程序可加快和简化playbook中常见文件管理任务。
二、使用Jinja2模板部署自定义文件
1.Jinja2模板的构成:
数据、变量和表达式,呈现时会被替换为对应的值。
2.模板文件通常保存在?
playbook项目的templates目录中,并通常分配有.j2文件扩展名。
3.Jinja2控制结构的使用:
使用for语句提供循坏功能;
使用if语句来提供条件控制。
(可以在Ansible模板中使用Jinja2循环和条件,不能在Ansible Playbook中使用)
4.变量筛选:
Jinja提供的筛选条件可以更改模板表达式的输出格式,实际就是把变量中的数据转换为其他格式。