Configuration

在 ansible 中跨角色共享簡單任務?

  • March 16, 2015

我有幾種不同的機器類型,它們都需要為它們定義官方的 postgres APT 儲存庫,以便能夠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

這是我能做的最好的嗎?有沒有比單獨的角色更輕量級的方法?

這對我來說似乎是最好的選擇;角色是關於做一件事並把它做好:)

引用自:https://serverfault.com/questions/675952