首页 > 解决方案 > ansible - 如何将一个简单的角色放入一个文件中(至少对于文档)

问题描述

我打破了可用于不同设置的角色的剧本。这些角色中的大多数都非常简单(任务中的几行,可能是变量或模板)。

我宁愿在单个文件中扮演角色,或者至少作为单个文件打印。当前将角色分配到许多文件(默认情况下并非所有文件都是空的)使得文档变得困难。

我试图插入一个exampleRole.yml包含单个任务(类似剧本)的文件,roles但是当我使用它执行剧本时它被忽略而没有错误消息。

--- 
tasks:
  - name: print to stdout
    action: command echo "hello"

如何在单个文件中写入角色?或者至少建议如何在单个文件中打印角色以获得更好的文档?

我喜欢ansible并且角色很有帮助——但是如何记录它们呢?编写好的自述文件不是一种选择,因为与代码分离的文档总是过时的!

标签: ansible

解决方案


Q:如何在单个文件中写入角色?

A:ansible-playbook不检查角色的结构。单个任务工作正常。例如

shell> tree roles/minimal/
roles/minimal/
└── tasks
    └── main.yml

1 directory, 1 file
shell> cat roles/minimal/tasks/main.yml 
- debug:
    msg: Hello
shell> cat pb.yml
- hosts: localhost
  roles:
    - minimal

给(删减)

shell> ansible-playbook pb.yml
   ...
ok: [localhost] => 
  msg: Hello

如果角色是空目录, ansible-playbook不会抱怨。还有其他限制,例如ansible-galaxy。作为提示,请参阅集合内的角色目录。


推荐阅读