Ansible поставщик Packer создает каталог, названный для моего локального пользователя - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь использовать поставщика Ansible в Packer для выполнения привилегированных задач при создании AWS AMI на основе Ubuntu.

В приведенном ниже минимальном примере выполняется привилегированный apt update, но он также создает пустой каталог /home/ubuntu/~myusername, где myusername - это мое локальное имя пользователя на моем рабочем столе. (Да, имя каталога содержит тильду.)

Если я попытаюсь добавить become_user: ubuntu к diagnose.yml, каталог не будет создан, но Ansible не сможет выполнить apt update.

stackoverflow_example. json


{
  "builders": [
    {
      "type": "amazon-ebs",
      "region": "us-east-1",
      "source_ami": "ami-085925f297f89fce1",
      "instance_type": "t3.micro",
      "ssh_username": "ubuntu",
      "ami_name": "stackoverflow-example"
    }
  ],
  "provisioners": [
    {
      "type": "ansible",
      "playbook_file": "./diagnose.yml"
    }
  ]
}

Diagnose.yml

---

- name: Debugging user directory problem
  hosts: default
  become: true

  tasks:
    - apt:
        update_cache: yes

Чтобы убедиться, что это не проблема версии YAML , я также пробовал become: yes.

(Примечание: ami-085925f297f89fce1 является текущим официальным AMI для Ubuntu 18.04 на компьютере x86 с поддержкой EBS в регионе us-east-1.)

Это кажется довольно простой задачей c, и мне кажется, что она согласуется с примером, показанным в документации Packer для Ansible инициатора .

Очевидно, я можно просто удалить ненужный каталог или установить Ansible на AMI, запустить playbooks локально, затем удалить Ansible, но это не отвечает на вопрос , почему этот каталог создается.

Я использую Packer 1.5.5 на MacOS 10.14.6. Это ошибка, или я делаю что-то глупое?

...