Ansible: Localhost — Локальный Запуск Playbook

Возможность запускать Ansible playbook на локальной системе может быть довольно полезной.

Например, для добавления playbook в crontab или для инициализации (provisioning) нового хоста.

В этой заметке я показываю несколько способов того, как можно локально запускать Ansible playbook.

Дельный Совет: Включение DEBUG и VERBOSITY в Ansible! Читать далее →

Локальное Выполнение Ansible Playbook

Запустить Ansible playbook на localhost:

# playbook.yml:
---
- name: "Ansible playbook example"
  hosts: 127.0.0.1
  connection: local
  tasks:

    - name: "Check out a Git repository on the Ansible host"
      git:
        repo: git://github.com/path/to/repo.git
        dest: /local/path

Выполнить локально только определенную задачу:

# playbook.yml:
---
- name: "Ansible playbook example"
  hosts: webservers
  tasks:

    - ...

    - name: "Check out a Git repository on the Ansible host"
      local_action: 
        module: git
        repo: git://github.com/path/to/repo.git
        dest: /local/path

Запустить Ansible playbook локально из командной строки:

$ ansible-playbook --connection=local 127.0.0.1, playbook.yml

Имейте ввиду, что запятая в конце 127.0.0.1, является обязательной, в противном случае адрес 127.0.0.1 будет интерпретирован как имя файла, что приведет к следующим ошибкам:

[WARNING]: Unable to parse …/127.0.0.1 as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ‘all’