リモートシステムにLAMP環境を設定するためのAnsibleプレイブックがあります。
このマニュアルの一部では、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
100万人以上のユーザーがいるコミュニティで最も多くサポートされているAGキャラクターです。 (したがって、問題が発生し、Jeffが現在近くにない場合を想定します。たとえば、ハワイで休暇を過ごすなどの場合、コミュニティメンバーが増えます。問題を解決し、安定性を確保します。
これを使用すると、すでに長いスクリプトも短縮されます。
私の質問
私たちが愛するGeerlingのAnsible-Galaxyの役割(そしてそれに似た他の役割)がGitHubのディレクトリdefaults/
、ファイルmeta/
、templates
ファイルに含まれているのはなぜですか.travis.yml
?つまり、私が書いたシナリオのようなシナリオはなぜ十分ではありませんか?
答え1
meta
Galaxyレジストリのメタデータが含まれています。.travis.yml
構成が含まれています。トラビス室、これはプロジェクトの継続的な統合を保証します。他のディレクトリには、Ansibleロールの一般的な構造(defaults
デフォルト設定を含む、tasks
プレイブックを含む、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
この特定の役割が自分のスクリプトよりも多くの場合に機能したことがわかります。これは、自分の戦略が「十分」ではないという意味ではありません。構造化された方法が役に立つ理由を説明します。