Да, вы можете запускать команды на хосте Ansible. Вы можете указать, что все задачи в игре выполняются на хосте Ansible, или вы можете отметить отдельные задачи для запуска на сервере Ansible.
Если вы хотите, чтобы запустить всю игру на хосте анзибля, а затем указать hosts: 127.0.0.1
и connection:local
в игре, например:
- name: a play that runs entirely on the ansible host
hosts: 127.0.0.1
connection: local
tasks:
- name: check out a git repository
git: repo=git://foosball.example.org/path/to/repo.git dest=/local/path
См Local Playbooks в документации анзибля для получения более подробной информации.
Если вы просто хотите запустить отдельную задачу на своем Ansible-хосте, вы можете использовать local_action
, чтобы указать, что задача должна выполняться локально. Например:
- name: an example playbook
hosts: webservers
tasks:
- ...
- name: check out a git repository
local_action: git repo=git://foosball.example.org/path/to/repo.git dest=/local/path
См Delegation в документации анзибль для получения более подробной информации.
Edit: Вы можете избежать необходимости вводить connection: local
в свою игру, добавив в свой инвентарь:
localhost ansible_connection=local
(Здесь нужно использовать «локальный» вместо «127.0.0.1», чтобы обратиться к играть).
Редактировать: В новых версиях ansible вам больше не нужно добавлять указанную выше строку в свой инвентарь, возможно, он уже существует.
блестящий ответ, спасибо! – Ross
Так удобно и хорошо написано. ++++ Спасибо! – chicks
Мне также понадобилось «sudo: no» в сценарии делегирования – Danimal