define myexec ( $param = $name ) { exec { $name : cwd => "/tmp" , path => "/bin" , command => "/bin/echo ${name} ${param}" } } myexec{ "myexecname" : } myexec{ "myexecnamewparam" : param => "givenparam" } puppet --debug ./TestNameInDefine.pp debug: Creating default schedules debug: Failed to load library 'shadow' for feature 'libshadow' debug: //Myexec[myexecnamewparam]/Exec[myexecnamewparam]: Changing returns debug: //Myexec[myexecnamewparam]/Exec[myexecnamewparam]: 1 change(s) debug: //Myexec[myexecnamewparam]/Exec[myexecnamewparam]: Executing '/bin/echo myexecnamewparam givenparam' debug: Executing '/bin/echo myexecnamewparam givenparam' notice: //Myexec[myexecnamewparam]/Exec[myexecnamewparam]/returns: executed successfully debug: //Myexec[myexecname]/Exec[myexecname]: Changing returns debug: //Myexec[myexecname]/Exec[myexecname]: 1 change(s) debug: //Myexec[myexecname]/Exec[myexecname]: Executing '/bin/echo myexecname ' debug: Executing '/bin/echo myexecname ' notice: //Myexec[myexecname]/Exec[myexecname]/returns: executed successfully debug: Finishing transaction -609237778 with 2 changes