cfn-init: command not found

Have You tried accessing the binary with the full path?

Maybe Your $PATH variable doesn't contain the default paths? echo $PATH should give something like:

[root@server ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

If it's empty, You may set the PATH variable with this command

export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

On CentOS possible default full paths are:

/usr/bin/cfn-init - from package: heat-cfntools

You may install the required package with command yum install {package}

On Debian possible default full paths are:

/usr/bin/cfn-init - from package: heat-cfntools

You may install the required package with command apt-get install {package}
Error in other languages:
cfn-init: bevel nie gevind nie
cfn-init: comandă negăsită
cfn-init: comando não encontrado
cfn-init: commande introuvable
cfn-init: command not found
cfn-init: käsku ei ole
cfn-init: không tìm thấy lệnh
cfn-init: komanda nerasta
cfn-init: Kommando nicht gefunden.
cfn-init: kommandot finns inte
cfn-init: komut yok
cfn-init: nie znaleziono polecenia
cfn-init: níor aimsíodh an t-ordú
cfn-init: no se encontró la orden
cfn-init: no s'ha trobat l'ordre
cfn-init: opdracht niet gevonden
cfn-init: parancs nem található
cfn-init: perintah tidak ditemukan
cfn-init: príkaz nenájdený
cfn-init: příkaz nenalezen
cfn-init: команда не найдена
cfn-init: командата не е открита
cfn-init: 命令找不到
cfn-init: コマンドが見つかりません