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" }

関連情報