目录
1.ansible.builtin中用于创建、更新或删除多行文本块的模块是什么
2.copy模块的作用
3.fetch模块的作用
4.file模块的作用
5.lineinfile模块的作用
6.stat模块的作用
7.要确保受管主机上存在文件,类似touch命令功能,还能设置权限等的模块及操作是怎样的
8.修改文件SELinux上下文属性,类似chcon命令功能的操作是怎样的
9.Ansible中用于部署使用Jinja2模板定义的文件到受管主机的模块是什么
10.为避免其他管理员手动修改Ansible管理的文件,在模板顶部添加注释的方式是怎样的
11.Jinja2模板中使用循环(for语句)的作用是什么
12.Jinja2模板中使用条件句(if语句)的作用是怎样的
13.Jinja2中用于改变模板表达式输出格式的筛选条件有哪些,举例说明
1.ansible.builtin中用于创建、更新或删除多行文本块的模块是什么
答案:blockinfile模块,可插入、更新或删除由可自定义标记线包围的多行文本块。
2.copy模块的作用
答案:可实现文件复制及属性设置,能将文件从本地或远程计算机复制到受管主机上,还可设置文件属性(包括SELinux上下文)
3.fetch模块的作用
答案:与copy模块作用相反,用于从远程计算机获取文件到控制节点,用于从远程主机获取文件到控制节点并按主机名组织存储。
4.file模块的作用
答案:可设置权限、所有权、SELinux上下文以及常规文件、符号链接、硬链接和目录的时间戳等属性,还能创建或删除常规文件等,具备多种文件及属性管理功能。
5.lineinfile模块的作用
答案:确保特定行位于某个文件中,或使用反向引用正则表达式替换现有行,主要用于修改文件中的某一行。
6.stat模块的作用
答案:检索文件状态信息,类似于Linuxstat命令,可获取文件状态相关信息。
7.要确保受管主机上存在文件,类似touch命令功能,还能设置权限等的模块及操作是怎样的
答案:使用ansible.builtin.file模块,通过设置path(文件路径)、owner(所有者)、group(所属组)、mode(权限)、state:touch来实现。
8.修改文件SELinux上下文属性,类似chcon命令功能的操作是怎样的
答案:使用ansible.builtin.file模块,指定path(文件路径)和setype(SELinux类型),如将samba_file的SELinux上下文设为samba_share_t类型的操作。
9.Ansible中用于部署使用Jinja2模板定义的文件到受管主机的模块是什么
答案:ansible.builtin.template模块,可将控制节点templates目录中的Jinja2模板文件(通常带.j2扩展名)部署到受管主机指定路径,还能设置部署后文件的所有者、组、权限和SELinux上下文等。
10.为避免其他管理员手动修改Ansible管理的文件,在模板顶部添加注释的方式是怎样的
答案:可使用ansible_managed指令,在ansible.cfg文件中设置ansible_managed的值(如ansible_managed=Ansiblemanaged),然后在Jinja2模板内用{{ansible_managed}}包含该注释内容,提示不应手动编辑文件。
11.Jinja2模板中使用循环(for语句)的作用是什么
答案:比如遍历users变量(值为列表),用{%foruserinusers%}{{user}}{%endfor%}可将列表中每个用户值逐行输出;也可结合条件(如排除root用户)进行循环,还能遍历主机组(如groups['myhosts'])输出主机名等,用于动态生成文件内容(如/etc/hosts)。
12.Jinja2模板中使用条件句(if语句)的作用是怎样的
答案:如{%iffinished%}{{result}}{%endif%},当finished变量值为True时,才将result变量值放入已部署文件中,实现条件性地在部署文件里放置内容。
13.Jinja2中用于改变模板表达式输出格式的筛选条件有哪些,举例说明
答案:有to_json(将表达式输出格式化为JSON)、to_yaml(格式化为YAML)、to_nice_json(格式化易读的JSON)、to_nice_yaml(格式化易读的YAML)、from_json(要求输入为JSON格式字符串并转换)、from_yaml(要求输入为YAML格式字符串并转换)等,如{{output|to_json}}可将output内容转为JSON格式输出。