Configuration
在 ansible 中跨角色共享簡單任務?
我有幾種不同的機器類型,它們都需要為它們定義官方的 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
這是我能做的最好的嗎?有沒有比單獨的角色更輕量級的方法?
這對我來說似乎是最好的選擇;角色是關於做一件事並把它做好:)