![** に一致するパッケージは Ansible で利用できません](https://rvso.com/image/726380/**%20%E3%81%AB%E4%B8%80%E8%87%B4%E3%81%99%E3%82%8B%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AF%20Ansible%20%E3%81%A7%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93.png)
Ansible を使用してパッケージのリストをインストールしようとしていますが、何が問題なのかわかりません。
- name: Add PHP 7.2 repo
apt_repository:
repo: ppa:ondrej/php
state: present
register: ppastable
- name: install php7.2-fpm and all necessary modules
apt: name={{ item }} state=present
with_items:
- php7.2-fpm
- php7.2-gd
- php7.2-curl
- php7.2-mysql
- php7.2-mcrypt
- php7.2-mbstring
- php7.2-xml
update_cache: true
when: ppastable is success
ただし、プレイブックを実行すると、次のエラーが発生します。
failed: [172.31.110.103] (item=[u'php7.2-fpm', u'php7.2-gd', u'php7.2-curl', u'php7.2-mysql', u'php7.2-mcrypt', u'php7.2-mbstring', u'php7.2-xml']) => {"changed": false, "item": ["php7.2-fpm", "php7.2-gd", "php7.2-curl", "php7.2-mysql", "php7.2-mcrypt", "php7.2-mbstring", "php7.2-xml"], "msg": "No package matching 'php7.2-mcrypt' is available"}
これをテストしているサーバーでは、すべてのパッケージをインストールできます。これは問題ではありません。何が起こっているのか、何かアイデアはありますか? Ubuntu 16.04 で Ansible 2.6.3 を実行しており、同じ OS を実行している別のシステムにもパッケージをインストールしようとしています。
答え1
受け取ったエラーの関連部分には、次の内容が記載されています。
No package matching 'php7.2-mcrypt' is available
これは、この機能が PHP 7.2 で削除されたため、対応する Ubuntu/Debian パッケージがなくなったためです。
のドキュメント州:
This feature was DEPRECATED in PHP 7.1.0, and REMOVED in PHP 7.2.0.
この機能は、外部 PECL パッケージとして引き続き利用可能です。ただし、PHP 7.2 用の PECL mcrypt パッケージがある Red Hat/Fedora とは異なり、Ubuntu/Debian パッケージ作成者はパッケージ化しないことを選択しました。古い PHP コードで必要な場合は、PECL から手動でインストールできる可能性があります。