我有几种不同的机器类型,它们都需要为它们定义官方的 postgres APT repo,以便能够使用apt-get install
正确版本的工具。这些不同的机器都需要共享以下内容:
---
- name: add postgres repo key
sudo: yes
apt_key: url=http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc
id=ACCC4CF8
- name: add postgres repo
sudo: yes
apt_repository: repo='deb http://apt.postgresql.org/pub/repos/apt/ {{ ansible_distribution_release }}-pgdg main'
我有两个角色依赖于它,我的nagios
角色(需要执行大量 psql 工作)和我的postgres-base
角色。如果我能让这两个角色以某种方式包含上述相同的文件/任务,那就太棒了。
现在,我已经为这些任务创建了一个单独的角色,并称之为postgres-repo
,并且我正在使用 ansible 的角色依赖关系来确保上述两个角色postgres-repo
在执行之前都运行。
这是他们的meta/main.yml
:
---
dependencies:
- postgres-repo
这是我所能做的最好的事情吗?有没有比创建单独的角色更轻松的方法?
答案1
对我来说,这似乎是最好的选择;角色就是做一件事,并把它做好:)