测验:Playbook 基础
command为什么用模块制作的任务每次都显示为changed?
- 因为命令不是总是0,而是会输出终止代码。
- 因为SSH连接每次都会重新打开
- 被称为Ansible的错误
- 因为模块无法知道命令的执行前后状态。
--check关于模式的说明中正确的是什么?
- 所有模块都实现了检查模式,所以输出的更改列表总是与实际执行结果一致。
- 实际应用变更后,游戏结束时自动恢复到原状。
- 只有在模块支持检查模式时才准确,依赖前任务结果的后任务可能会出错。
- 不连接目标,只提前检查Playbook的YAML语法和模块参数错误。
lineinfile在regexp不给的话会出现的问题是什么?
- 目标文件的拥有者和权限被覆盖到模块默认值中进行初始化。
- 会产生缺少必要因素的错误,任务将在原地中断。
- 整个文件被写在line上的一行覆盖,现有内容消失。
- 因为找不到匹配的行,所以每次执行时可能会新增新的行。
使用标签部分执行的危险是什么?
- 一个任务只能贴一个标签,分类很快就会遇到极限。
--tags执行时,处理器无法接收标签,即使收到通知也不会触发。--syntax-check只检查带有标签的任务,错过其余的错误。- 创建了从未执行过整个的playbook,所以才发现第一次看到的错误。
在将游戏转发到多个主机时,按照执行顺序正确的顺序是什么?
- 主机和任务都每次执行时以随机顺序混合进行。
- 在所有主机完成一个任务后,进入下一个任务。
- 完成最快的主机首先转到下一个任务,牵引着顺序。
- 在一个主机上完成整个任务后,会跳转到下一个主机。
给所有任务都加上name的最实用的原因是什么?
- 因为发生事故时,人们阅读的不是代码,而是执行日志。
- 因为没有name的任务会被解析器跳过,所以根本不会被执行。
- 因为任务按照name的字典顺序排列,所以确定执行顺序。
- 因为只有加上name,才能在那个任务中引用变量和事实。