On my Ubuntu system with puppet 3.2.1 when no provider is defined, it assumes upstart and tries to find a job named "ceph-mon.${name}" which doesn't exists and completly ignores the start, stop, status commands. Defining the base provider seemed to be the cleanest way to force it to use the defined commands but I'm just starting with puppet.