Упаковщик с доступным доступом из локальных приложений, но с другого сервера запрашивает разрешения root

Для некоторого контекста я использую упаковщик с ansible Provider для создания Образы AMI на AWS.

Соответствующие части упаковщика и анзибля:

packer.json

"provisioners": [{
  "type": "shell",
  "inline": [
    "sleep 15",
    "sudo apt-get update",
    "sudo apt-get install -y aptitude python"
  ]
}, {
  "type": "ansible",
  "playbook_file": "../provision/ansible-playbook.yml",
  "groups": ["webworker"],
  "extra_arguments": [
    "--become-method=sudo"
  ]
}]

tasks.yml

- name: Install tools
  become: true
  apt:
    name: "{{ item }}"
    state: latest
  with_items:
    - build-essential
    - git

На моем локальном компьютере все идет нормально.

Но как часть CI это, используя наш сервер Jenkins для запуска этого сценария упаковщика, но он терпит неудачу в первой доступной задаче, для которой установлено стало , в этом случае первым шагом является установка некоторых инструментов через модуль apt :

amazon-ebs:         "W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)",
amazon-ebs:         "E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)",
amazon-ebs:         "E: Unable to lock directory /var/lib/apt/lists/",
amazon-ebs:         "W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)",
amazon-ebs:         "W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)",
amazon-ebs:         "E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)",
amazon-ebs:         "E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?"

Я проверил разрешения, пользователя и даже если в фоновом режиме работал другой apt , у которого была блокировка: ничего.

Более интересно то, что если я заменю недоступен с помощью команды с помощью sudo aptitude ... он работает, а также то, что до выполнения задачи ansible существует средство обеспечения оболочки, которое также запускает apt-get без ошибок.

Опять же, эта работа выполняется с моей машины (и с двух других компьютеров), просто не с сервера. У меня нет файла ansible.cfg ни на одном компьютере (даже на компьютере по умолчанию).

1
задан 12 September 2017 в 16:20
1 ответ

Я столкнулся с этой проблемой, используя упаковщик для создания AMI AWS для Ubuntu 16.04. Вы используете Ubuntu?

Ubuntu 16.04 по умолчанию запускает uattended-updates автоматически (из коробки). Что происходит, так это то, что при первом открытии окна автоматическое обновление блокирует apt (см. / Var / lib / dpkg / lock), а затем выдает ошибку сценариев подготовки, если они устанавливают что-либо через apt.

Подробнее см. Здесь подробнее https://github.com/ansible/ansible/issues/4355#issuecomment-286184925

Также здесь: - https://github.com/geerlingguy/packer-ubuntu-1604/issues/3

2
ответ дан 3 December 2019 в 20:19

Теги

Похожие вопросы