Я пытаюсь включить запуск сценария на удаленном хосте перед выполнением набора задач на другом списке хостов. В частности, я пытаюсь выполнить сценарий в моем локальном репозитории yum, чтобы синхронизировать репо, перед запуском обновления yum на наборе хостов. Локальный сервер репо не может быть в том же списке инвентаризации, что и обновляемые хосты, так как мне это сделать? Любая помощь будет принята с благодарностью.
Я вижу возможные ответы. Выберите тот, который лучше всего подходит для вашей ситуации
Доступный playbook может содержать несколько пьес, которые будут запускаться по порядку. Вы можете разделить свои действия на две пьесы. Вероятно, это будет более удобно, если у вас есть несколько задач для вашего первого хоста или если у вас есть несколько хостов, с которыми нужно разговаривать для вашей синхронизации (например, кластер ...)
- name: sync my local yum repo
hosts: my_local_yum_repo_host
tasks:
- name: dummy task to sync repo
debug:
msg: sync repo
- name: update my hosts
hosts: my_hosts_to_upgrade
tasks:
- name: run the upgrade
yum:
name: '*'
state: latest
В этом случае мы помещаем все в одну игру и используем делегация с участием run_once
играть за один раз, чтобы все хосты обновлялись в списке
- name: update my hosts
hosts: my_hosts_to_upgrade
tasks:
- name: dummy task to sync repo
debug:
msg: sync repo
delegate_to: my_local_yum_repo_host
run_once: true
- name: run the upgrade
yum:
name: '*'
state: latest