Chef install to a custom location

Can we install chef at a custom location by using tar file instead of rpm. Is there away to configure the install location as well in addition to other configurations like location of logs etc.

This is not really supported. The compiled objects assume the use of the /opt/chef path. You might be able to hack around it with a whole lot of ELF header editing but I wouldn’t if I were you. One interesting option is you can use some complex bind mount and chroot trickery to make chef-client think it is installed at /opt/chef even if you manually unpack the files elsewhere. But again, this is highly undocumented and you’ll be largely in uncharted territory.