[go: up one dir, main page]

Skip to content

Clivern/OpsWork

Repository files navigation

PyPI-Server Build Status

OpsWork

To use opswork, follow the following steps:

  1. Create a python virtual environment or use system wide environment
$ python3 -m venv venv
$ source venv/bin/activate
  1. Install opswork package with pip.
$ pip install opswork
  1. Get opswork command line help
$ opswork --help
  1. Init the config file and the sqlite database
$ opswork config init
  1. To edit configs
$ opswork config init
  1. Add a recipe
$ opswork recipe add <recipe_name> -p <recipe_relative_path>

# Some examples
$ opswork recipe add clivern/ping -p recipe/ping -f
$ opswork recipe add clivern/nginx -p recipe/nginx -f
$ opswork recipe add clivern/motd -p recipe/motd -f
$ opswork recipe add clivern/cmd -p recipe/cmd -f
# From remote git
$ opswork recipe add clivern/dotfiles/update -p git@github.com:clivern/dotfiles.git -s brew/update -t dotfiles -f
  1. To list recipes
$ opswork recipe list

# Get recipes as a JSON
$ opswork recipe list -o json | jq .
  1. To get a recipe
$ opswork recipe get <recipe_name>
  1. To delete a recipe
$ opswork recipe delete <recipe_name>
  1. Add a host
$ opswork host add <host_name> -i <host_ip> -p <ssh_port> -u <ssh_username> -s <ssh_key_path>

# Add a remote host
$ opswork host add example.com -i 127.0.0.1 -p 22 -u root -s /Users/root/.ssh/id_rsa.pem

# Add the localhost
$ opswork host add localhost -i localhost -c local
  1. To list hosts
$ opswork host list

# Get hosts as a JSON
$ opswork host list -o json | jq .
  1. To get a host
$ opswork host get <host_name>
  1. To SSH into a host
$ opswork host ssh <host_name>
  1. To delete a host
$ opswork host delete <host_name>
  1. Run a recipe towards a host
$ opswork recipe run <recipe_name> -h <host_name> -v key=value

# Some examples
$ opswork recipe run clivern/nginx -h example.com
$ opswork recipe run clivern/ping -h localhost
  1. To generate a random password
$ opswork random password 8
  1. To add a secret
$ opswork secret add <secret/name> <secret_value> -t <tag>

$ opswork secret add clivern/cloud_provider/api_key xxxx-xxxx-xxxx-xxxx -t cloud_provider
  1. To list secrets
$ opswork secret list -o json
  1. To get a secret
$ opswork secret get <secret_name>

# For example
$ opswork secret get clivern/cloud_provider/api_key
  1. To delete a secret
$ opswork secret delete <secret_name>

# For example
$ opswork secret delete clivern/cloud_provider/api_key