Ansible:在一个主机上多次运行一次游戏

时间:2015-09-19 20:31:20

标签: ansible ansible-playbook

我想分发一些ansible部署脚本,其中客户只需要描述他们的基础架构并将一些重要的值放入库存文件中。有时,单个角色可能需要多次应用于单个主机。为了防止客户不得不对剧本本身进行修改,我希望他们能够描述类似于以下内容的基础设施:

inventory_file

[servers:children]
servers-a
servers-b

[servers-a]
host1 server_port=1337

[servers-b]
host1 server_port=1335

playbook.yml

---

- name: Set up Servers
  hosts: servers
  roles:
    - role: server_setup

我知道某个角色的 allow_duplicates 元值,并且已为示例'服务器'角色。看来这个角色只会在上面的剧本和后者定义的变量中应用一次。

我知道一种解决方案,即为主机创建其他主机名别名。

有人熟悉更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,有时<值应为server_port1335

我不建议以这种方式创建库存,因为它具有误导性。 如果服务器端口的值始终为13371335,我会在1337下的server_setup中配置默认​​值:

defaults\main.yml

如果要配置任何其他值,可以按如下方式执行剧本:

# server_setup\defaults\main.yml
server_port: 1335

在这种情况下,客户可以根据需要多次运行剧本。