Ansible을 사용하여 Composer를 설치하는 방법은 무엇입니까?

Ansible을 사용하여 Composer를 설치하는 방법은 무엇입니까?

Bash에서는 일반적으로 다음과 같이 Composer를 설치합니다.

curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer

나는 읽으려고 노력한다Ansible Composer 모듈 문서 팁을 드리자면Ansible을 사용하여 Composer를 설치하는 데 권장되는 방법이 무엇인지 찾을 수 없습니다.

저는 Composer를 설치할 때마다 최신 설치 명령을 통해 Composer가 설치되는지 확인하고 Ansible이 SSH를 통해 내 컴퓨터에서 지속적으로 업그레이드되는지 확인하고 싶습니다.

state: latestAnsible " " 방식(Ansible 모듈 사용)으로 이 작업을 어떻게 수행할 수 있나요 apt?

답변1

하다

ansible-galaxy install geerlingguy.composer

이것은 추가됩니다geerlingguy.composer캐릭터에 추가한 다음 스크립트에 추가할 수 있습니다.

답변2

여기에 또 다른 접근 방식이 있으며 여기에 모든 것이 설명되어 있습니다.https://www.devopsaurus.com/install-composer-with-ansible/

---

- name: Validate Composer checksum
  get_url:
    checksum: "sha384:795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc"
    dest: /usr/src/
    url: https://getcomposer.org/installer
  become: yes

- name: Download and install Composer
  shell: curl -sS https://getcomposer.org/installer | php
  args:
    chdir: /usr/src/
    creates: /usr/local/bin/composer
    warn: false
  become: yes

- name: Add Composer to global path
  copy: 
    dest: /usr/local/bin/composer
    group: root
    mode: '0755'
    owner: root
    src: /usr/src/composer.phar
    remote_src: yes
  become: yes

답변3

  1. 파일로 get_url출력 하려면 바람직하게는 일부 디렉토리에 다음과 같이 말하십시오.https://getcomposer.org/installercomposer-setup.php/tmp

  2. command모듈을 사용하여 php /tmp/composer-setup.php ...단계 실행

또는 Ansible Galaxy를 검색하여 다른 사람이 해당 작업을 수행했는지 확인하세요.

답변4

체크섬을 읽고 변수에 저장한 후 PHAR 파일을 디렉토리에 다운로드합니다 /usr/local/bin. 체크섬 작업은 선택 사항입니다. 그러나 이 버전을 읽으려면 PHP가 필요합니다.

---
- name: "Read Checksum"
  shell: curl https://getcomposer.org/download/latest-stable/composer.phar.sha256
  register: composer_checksum

- name: "Download PHAR file"
  ansible.builtin.get_url:
    url: https://getcomposer.org/download/latest-stable/composer.phar
    dest: /usr/local/bin/composer
    force: yes
    checksum: "sha256:{{ composer_checksum.stdout }}"

- name: "Read composer version"
  shell: composer -V
  register: composer_version

- debug:
    var: composer_version.stdout

예상 출력

ok: [127.0.0.1] => { "composer_version.stdout": "컴포저 버전 2.1.9 2021-10-05 09:47:38" }

관련 정보