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.
The part of trying out scripts involve creating a docker container with
ssh and running some projects and functions on it.
This change allows to define the docker image name to be used with the
docker-* functions.
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
Modules are located on the `modules` folder on the project.
By default, kickstart will put itself on the `compile/modules/kickstart`
before any folder is linked there as well. This give the possibility of
overriding which kickstart project will be deployed with you.
Kickstart is treated as an special folder, given that the projects
requires its functions. So, it is loaded before all of the modules, and
skiped looping over the `modules` folder.