Lionep
Lionep

Reputation: 446

How to run a task from a playbook on a specific host?

I'm writing an Ansible playbook to manage backup and I want two different tasks:

- name: Setup local machine for backup
  cron:
    cron_file: /etc/cron.d/backup
    hour: 4
    minute: 0
    job: /root/do_backup.sh
    state: present
    name: backup

- name: Setup backup server for new machine
  shell:
    cmd: "mkdir /backups/{{inventory_hostname}}"

Is it possible to tell ansible that second task is intended to be executed on another machine of my inventory?

I don't want a dedicated playbook, because some later tasks should be executed after the task on backup server.

Upvotes: 1

Views: 86

Answers (1)

Lionep
Lionep

Reputation: 446

I'm answering my own question: task delegation is what I'm looking for:

- name: Setup backup server for new machine
  delegate_to: backup-server
  shell:
    cmd: "mkdir /backups/{{inventory_hostname}}"

Upvotes: 2

Related Questions