원격 시스템에 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
이 특정 역할이 자신의 스크립트보다 더 많은 경우에 작동했음을 알 수 있습니다. 이는 자신의 전략이 "충분"하지 않다는 의미는 아닙니다. 구조화된 방법이 유용한 이유를 설명합니다.