我习惯将 Ansible 示例视为:
- file: path=/tmp/file state=touch
但工作中有人告诉我,我应该只使用 YAML 语法,如下所示:
- file:
path: /tmp/file
state: touch
or,
- file: {path: /tmp/file, state:touch}
哪一个满足 Ansible 最佳实践?
取自https://www.ansible.com/blog/ansible-best-practices-essentials
Ansible playbook 运行程序的核心是一个 YAML 解析器,添加了命令行键=值对简写等逻辑。虽然在制作快速手册或文档示例时很方便,但这种格式格式会降低可读性。我们建议您不要使用这种简写(即使使用 YAML 折叠样式)作为最佳实践。
以下是使用 key=value 简写形式的一些任务的示例:
- name: install telegraf
yum:
name: telegraf-{{ telegraf_version }} state=present update_cache=yes disable_gpg_check=yes enablerepo=telegraf
notify: restart telegraf
- name: configure telegraf
template: src=telegraf.conf.j2 dest=/etc/telegraf/telegraf.conf
notify: restart telegraf
- name: start telegraf
service: name=telegraf state=started enabled=yes
现在,这里是使用本机 YAML 语法的相同任务:
- name: install telegraf
yum: telegraf-{{ telegraf_version }}
state: present
update_cache: yes
disable_gpg_check: yes
enablerepo: telegraf
notify: restart telegraf
- name: configure telegraf
template:
src: telegraf.conf.j2
dest: /etc/telegraf/telegraf.conf
notify: restart telegraf
- name: start telegraf
service:
name: telegraf
state: started
enabled: yes
原生YAML行数较多;然而,这些行较短,减少了水平滚动和换行。它可以让眼睛直接扫视比赛。任务参数堆叠在一起,很容易与下一个参数区分开来。原生 YAML 语法还具有在几乎所有现代文本编辑器中改进的语法突出显示的优点。作为原生 YAML,vim 和 Atom 等编辑器将从其值中突出显示 YAML 键(模块名称、指令、参数名称),进一步提高内容的可读性。我们自己的许多文档出于遗留原因而使用这种简写,尽管我们正在逐步改变它。 (已接受文档拉取请求。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)