我使用 Ansible 来管理一些为多个虚拟主机运行网站的 Web 和数据库服务器。对于每个网站,我需要为 dbservers 组分配一个数据库角色,为 webservers 组分配一个网站角色。所以我的剧本看起来像这样:
- hosts: dbservers
roles:
- { role: database, vhost: 'host1.com', db: 'customdb' }
- { role: database, vhost: 'other.com' }
- hosts: webservers
roles:
- { role: website, vhost: 'host1.com', db: 'customdb' }
- { role: website, vhost: 'other.com' }
Run Code Online (Sandbox Code Playgroud)
这很有效,但它很难看,因为我必须重复两次。当从默认值更改某些参数时,这尤其容易出错(例如本例中 vhost host1.com 上的 db)。
有没有办法写这个,这样我就可以有一个包含所有必需参数的虚拟主机列表,并为每个虚拟主机条目自动将不同的角色添加到不同的主机组?
ansible ×1