Ansible start-at-task из Vagrant

Есть ли способ использовать запуск задачи Ansible из Vagrantfile? Я хочу указать точную задачу, с которой нужно начать отладку. Я понимаю, что хост-вары будут отсутствовать, это нормально. Другие подобные вопросы, похоже, не задают именно этого.

Одна из идей - установить ENV_VAR, Vagrant заполняет его и передает в playbook. то есть:

# export START_TASK='task-name'
# Run: "vagrant provision --provision-with resume"

  config.vm.provision "resume", type: "ansible_local" do |resume|
    resume.playbook = "playbooks/playbook.yml --start-at-task=ENV['START_TASK']"
  end

Команда playbook не анализирует env_var таким образом, но я, по сути, пытаюсь запустить эту команду. Я в основном просто пытаюсь проанализировать этот env_var и передать его провайдеру Vagrant ansible.

Примечание: @retry в playbook только повторно запускает всю неудачную playbook для этого единственного хоста, а не только одну команду, так что это не решение.


person Michael    schedule 05.04.2018    source источник
comment
Пожалуйста, используйте ясный пример того, чего вы хотите достичь, вместо того, чтобы отказываться от своих мыслей. Неясно, какова ваша цель, каков ваш воображаемый обходной путь (одна идея ...), какие другие вопросы вы имеете в виду, какое @retry отношение к этому все.   -  person techraf    schedule 06.04.2018
comment
Вот что такое блок кода, именно то, что я хочу.   -  person Michael    schedule 06.04.2018
comment
@retry упоминается в большинстве других подобных вопросов Vagrant + ansible retry a task type. Добавление этого полезно для экономии времени людей.   -  person Michael    schedule 06.04.2018


Ответы (1)


Просто нужно было добавить следующее, чего я нигде не нашел в документации Vagrant.

resume.start_at_task = ENV['START_AT_TASK']
person Michael    schedule 05.04.2018
comment
Для всех, кто задается этим вопросом. Теперь это задокументировано на vagrantup.com/docs/provisioning/ansible_common.html. - person Augusto; 23.01.2019