Something like

file { '/etc/puppet/data/hiera_data/cobbler.yaml':
   audit => content,
}

exec { "cobbler-sync":
   command => "/usr/sbin/cobbler_sync.py",
   subscribe => File['/etc/puppet/data/hiera_data/cobbler.yaml'],
}

should have it run only if cobbler.yaml gets changed