Apache-Httpd

Ansible-Galaxy 角色中的基本文件(目錄和正常文件)是什麼?

  • December 18, 2018

我有一個 Ansible 劇本,用於在遠端機器上建立 LAMP 環境。

本劇本的一部分涉及安裝 Composer:

- name: Install Composer
 get_url:
   url: https://getcomposer.org/installer
   dest: /tmp/composer-setup.php
 command: php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

我的考慮

ansible-galaxy相反,我正在考慮在劇本中使用以下命令的這些 5 行結構:

ansible-galaxy install geerlingguy.composer

geerlingguy.composer是擁有超過一百萬使用者的最受社區支持的 AG 角色(所以我假設如果出現問題並且 Jeff 目前不在 - 例如,在夏威夷度假或其他什麼的,將會有許多社區成員來解決問題並確保穩定性。

使用它也將縮短我已經相當長的劇本。

我的問題

為什麼我們心愛的 Geerling(以及其他一些類似角色)的 Ansible-Galaxy 角色都包含在 GitHub 中的目錄和defaults/文件?換句話說,為什麼像我寫的那樣一本劇本是不夠的?meta/``templates``.travis.yml

meta包含用於 Galaxy 系統資料庫的元數據。.travis.yml包含Travis CI的配置,確保項目持續集成。其他目錄體現了 Ansible 角色的典型結構:defaults包含預設設置,tasks包含 playbook,並templates包含生成文件的模板。

ansible-galaxy init

將為您創建預設結構;有關詳細資訊,請參閱文件。目前,這是

README.md
.travis.yml
defaults/
   main.yml
files/
handlers/
   main.yml
meta/
   main.yml
templates/
tests/
   inventory
   test.yml
vars/
   main.yml

但是您不會在所有角色中看到所有這些,因為很少有角色需要此處列出的每個文件和目錄。

如果您查看 中的文件tasks,您會發現這個特定角色處理的案例比您自己的劇本要多得多。這並不意味著你自己的劇本還不夠。它解釋了為什麼結構化方法很有用。

引用自:https://unix.stackexchange.com/questions/489638