У нас есть система, в которой мы упаковываем некоторый код, создаем веб-сервер и объединяем все это в AMI, готовый к обслуживанию на AWS.
Все работало нормально, пока я не обновил Ansible и Packer. Мы также обновили файл packer.json
до нового формата hcl с помощью встроенной команды Convert.
amazon-ebs.autogenerated_1: fatal: [default]: FAILED! => {"changed": false, "msg": "No package matching 'build-essential' is available"}
Мы используем это изображение в качестве основы для сервера.
filters = {
name = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"
root-device-type = "ebs"
virtualization-type = "hvm"
}
Теперь, когда ansible начинает устанавливать некоторые нужные нам пакеты, похоже, у него возникла проблема с пакетами:
в частности.
Мы попробовали разные способы выполнения обновления apt-get, используя как команду ansible «shell», так и обычную команду «apt», с различными вариантами обновлений кеша и т. д.
Странно то, что тем больше мусора мы можем вывести на экран (используя, например, --verbose при выполнении ansible playbook) или используя «cat» в файле, например, я просто запустил /etc/apt/ source.list перед задачей установки пакетов, тем дальше мы продвигаемся по процессу. Это заставляет меня поверить, что где-то может быть состояние гонки, но я не могу хоть убей понять, почему.
Вот команда, которую мы используем для установки пакетов.
- name: Install common dependencies
apt:
name:
- htop
- nano
- wget
- perl
- unzip
- tcpdump
- build-essential
- python3-distutils
- libwww-perl
- supervisor
- mysql-client
state: present
Как я уже упоминал ранее, это работало безупречно до обновления ansible и упаковщика.
У нас была похожая проблема, и после долгих поисков я выделил проблему с обновлением packer-plugin-amazon
с 1.3.1 до 1.3.2. Итак, я исключил эту версию из конфигурации Packer, по крайней мере на данный момент:
packer {
required_plugins {
amazon = {
source = "github.com/hashicorp/amazon"
version = "~> 1, != 1.3.2" # v1.3.2 has apt issues
}
ansible = {
source = "github.com/hashicorp/ansible"
version = "~> 1"
}
}
}
Извините за задержку с ответом! Это был не тот способ, которым нам удалось решить проблему, но это была проблема версии :)
Не могли бы вы сослаться на ссылку или документ, касающийся проблем с версией 1.3.2? Пользователям будет полезно прочитать