The kickstart.user.exec function was using the `kickstart infect`
command, which works on clients with kickstart installed (which is the
case for `kickstart infect`ed terminals or baseline).
This change will lookup for the client existance and use it, or use the
compiled module.
Docker can run a different distro from the host. For example, Ubuntu
host with CentOS docker image.
The container uses the same kernel as the host tho. On a CentOS
container under Ubuntu, `uname -a` will report it to be an Ubuntu
kernel.
Linux distros comes with configuration files under `/etc` that helps
identify the family it is. An example of configuration files to help
identify is on http://linuxmafia.com/faq/Admin/release-files.html
Yum only supports passing one package to check its info.
Other package managers allow you to have several packages name, and
return non-zero whenever one is not installed.
To have the same behaviour on yum, we iterate over the list until we
find one that is not installed.
Modules are located under `modules` folder. They will be copied on
deploy as well.
An example structure:
```
sample
├── files
├── install.sh
├── modules
│ └── another
│ ├── files
│ ├── install.sh
│ ├── README.md
│ ├── recipes
│ └── roles
│ └── web.sh
├── README.md
├── recipes
└── roles
```
Roles and recipes will be available for your project to access it with
the commited functions