module (community.general.composer) is missing interpreter line

ansible でいつもの通り試行錯誤していたら、見慣れないエラーが出ました。

TASK [composer : 高速化のため、リポジトリとして https://packagist.jp を使用する] *******************
fatal: [localhost]: FAILED! => {"msg": "module (community.general.composer) is missing interpreter line"}

いつも通っていたロジックなのですが、なぜだろう。該当の箇所は以下のとおりです。

- name: 高速化のため、リポジトリとして https://packagist.jp を使用する
  community.general.composer:
    command: config
    arguments: -g repos.packagist composer https://packagist.jp
    composer_executable: /usr/bin/composer
    global_command: yes
  become: yes
  tags: packagist

ぐぐってみると、結構深いところで起こっているエラーっぽい?

自分で直せるほどのスキルはないので、いつもの通りワークアラウンドを探します。

まずは yum update をかけてみたけど変わらず。

エラーが起こっているのは community モジュールであり、これは追加でインストールしたところです。collection 関連の要求モジュールは以下のとおりです。

vagrant@hoge:~/hoge-deploy$ cat requirements.yml
---
collections:
  - name: community.mysql
    version: 2.1.0
  - name: community.general
    version: 3.3.1
  - name: ansible.posix
    version: 1.2.0

collection install し直してみます。

vagrant@hoge2:~/hoge-deploy$ ansible-galaxy collection install -r requirements.yml
ERROR! Collection file at '/home/vagrant/.ansible/collections/ansible_collections/community/mysql/MANIFEST.json' does not contain a valid json string.

なんか ~/.ansible 配下の何かがおかしいようです。このディレクトリは作った覚えはないので ansible-galaxy が作ったのでしょう。おそらく消しても大丈夫なはずです。

vagrant@hoge2:~/hoge-deploy$ rm -rf ~/.ansible
vagrant@hoge2:~/hoge-deploy$ ansible-galaxy collection install -r requirements.yml
Process install dependency map
Starting collection install process
Installing 'community.general:3.3.1' to '/home/vagrant/.ansible/collections/ansible_collections/community/general'
Installing 'ansible.posix:1.2.0' to '/home/vagrant/.ansible/collections/ansible_collections/ansible/posix'
Installing 'community.mysql:2.1.0' to '/home/vagrant/.ansible/collections/ansible_collections/community/mysql'

いったん削除してから collection を入れ直しました。その後、通常通りプレイブックを流してみたら無事に正常終了しました。めでたしめでたし。

タイトルとURLをコピーしました