Я пытаюсь настроить упаковщик и удаленный-удаленный, чтобы создать AMI на основе моих ранее существовавших скриптов. Я столкнулся с одним из двух вопросов.Packer and Ansible SSH/Sudo
Сначала у меня возникла проблема с SSH, где я получил SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh
. Я добавил connection: local
в мою конфигурацию ansible и, похоже, решил это.
Теперь я столкнулся с проблемой sudo: a password is required
от Ansible. Непонятно, почему, поскольку пользователь, которого я указываю, имеет доступ к sudo с помощью NOPASSWD, и я проверил это, подключившись с помощью установки temp-ключа пакером. Я получаю следующую ошибку и пробовал пропустить в ansible_become_user
и ansible_become_pass
как vars через упаковщика без везения. Похоже, что, возможно, сейчас он пытается подключиться к моему локальному соединению, но ему нужен пароль? Любые идеи, как правильно настроить это.
Packer:
{
"variables": {
"aws_access_key": "",
"aws_secret_key": ""
},
"builders": [{
"type": "amazon-ebs",
"access_key": "{{user `aws_access_key`}}",
"secret_key": "{{user `aws_secret_key`}}",
"region": "us-east-1",
"subnet_id": "subnet-56343453",
"source_ami": "ami-61bbf104",
"instance_type": "t2.micro",
"ssh_username": "centos",
"ssh_pty" : true,
"ami_name": "packer-example {{timestamp}}"
}],
"provisioners": [
{
"type": "shell",
"inline": ["sudo sed -i 's/requiretty/!requiretty/' /etc/sudoers"]
},
{
"type": "ansible",
"playbook_file": "../config/site/packer.yml",
"user": "centos",
"ansible_env_vars": [ "ansible_become_user=centos", "ansible_become_pass=packer", "ANSIBLE_HOST_KEY_CHECKING=False", "ANSIBLE_SSH_ARGS='-o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s'" ]
}
]
}
анзибль:
---
- name: run base centos playbooks
hosts: all
connection: local
become: true
roles:
- base_centos7
Может быть неправильными, но это выглядит как 'связи: local' будет работать пьесы локально, где' packer' был запущен, а не на Предоставлен инстанции , –
Эй, как вы это исправили? Теперь я столкнулся с той же ошибкой на этапе сбора фактов. Данные не могут быть отправлены на удаленный хост 127.0.0.1. Я пробовал подключение: локально, как говорит MattW, и он прав. Но без этого не работает – straykiwi