![В ansible нет пакетов, соответствующих **](https://rvso.com/image/726380/%D0%92%20ansible%20%D0%BD%D0%B5%D1%82%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2%2C%20%D1%81%D0%BE%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D1%85%20**.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"}
На сервере, на котором я это тестирую, все пакеты могут быть установлены. Это не проблема. Есть идеи, что происходит? Я запускаю ansible 2.6.3 на ubuntu 16.04 и пытаюсь установить пакеты также на другой системе с той же ОС.
решение1
В полученной вами ошибке в соответствующей части указано следующее:
No package matching 'php7.2-mcrypt' is available
Это связано с тем, что данная функция была удалена из PHP в версии 7.2, поэтому соответствующего пакета Ubuntu/Debian больше нет.
Theдокументысостояние:
This feature was DEPRECATED in PHP 7.1.0, and REMOVED in PHP 7.2.0.
Функция по-прежнему доступна как внешний пакет PECL. Но в отличие от Red Hat/Fedora, где есть пакет для PECL mcrypt для PHP 7.2, упаковщики Ubuntu/Debian решили не упаковывать его. Вы все еще можете установить его вручную из PECL, если у вас есть древний код PHP, которому он нужен.