kickstart/README.md
2014-02-21 21:27:32 -03:00

155 lines
3.0 KiB
Markdown

# kickstart
Bash installation script for developer environments
### Installation
Add it to the path.
One options is to download it, and export the bin folder into your PATH
```bash
# Adjust the paths to your preferred location
installation_path=/opt/kickstart
shell_configuration=$HOME/.bashrc
git clone https://github.com/bltavares/kickstart.git $installation_path
echo 'export PATH=$PATH:'$installation_path'/bin' >> $shell_configuration
echo 'eval "$(baseline autocomplete)"' >> $shell_configuration
```
The other is to link the `bin/kickstart` into a place that is already on your path
```bash
# Adjust the paths to your preferred location
installation_path=/opt/kickstart
shell_configuration=$HOME/.bashrc
git clone https://github.com/bltavares/kickstart.git $installation_path
sudo ln -s $installation_path/bin/kickstart /usr/local/bin/kickstart
echo 'eval "$(baseline autocomplete)"' >> $shell_configuration
```
### Usage
#### create
Creates a sample project structure
```bash
kickstart create [folder name or current folder]
```
#### docker-create
Creates a docker container with a running sshd to test recipes
```bash
kickstart docker-create
```
#### docker-ssh
Access the created docker container over ssh. A simple utility that looks up for the port the docker is bound.
```bash
kickstart docker-ssh
```
#### compile
Compile the current workspace into the folder to be packaged on deploy
```bash
kickstart compile
```
#### deploy
Takes an host target and deploy the compiled code on it.
```bash
kickstart deploy [--sudo] [--password PASSWORD] target [roles ...]
```
##### Examples
Deploy a role on a host
```bash
kickstart deploy vagrant@localhost nodejs
```
Deploy two roles on a host with an alternative port
```bash
kickstart deploy "-p 2222 vagrant@localhost" nodejs redis
```
Deploy with sudo and send the password for sudo
```bash
kickstart deploy --sudo --password vagrant "-p 2222 vagrant@localhost" nodejs redis
```
#### local
Deploy localy a recipe that is not over ssh. It basicaly compile and run the install script
```bash
kickstart local [--sudo] [roles ...]
```
#### infect
Infect your shell with the kickstart utility functions
```bash
eval "$(kickstart infect)"
```
#### bootstrap
Install kickstart on the target
```bash
kickstart bootstratp [target]
```
##### Example
Using default ssh configurations
```bash
kickstart bootstrap vagrant@vagrant
```
Using alternate ssh port
```bash
kickstart bootstrap "-p 2222 vagrant@vagrant"
```
#### doc
Show documentation for a kickstart function
```bash
kickstart doc [function name]
```
##### Example
List all documented functions
```bash
kickstart doc
```
Show documentation for a function
```bash
kickstart doc kickstart.os
```
#### autocomplete
Enable autocompletion on your terminal
```bash
eval "$(kickstart autocomplete)"
```
### Debbuging
Prepend DEBUG=1 to the command and you will see massive ammount of commands on your screen
```bash
DEBUG=1 kickstart local nodejs
```
### Thanks
This project was inspired on [sunzi](https://github.com/kenn/sunzi)