The main command line in yaybu is yaybu. If you run it with no arguments it will drop you into an interactive shell where you can run the various subcommands.
Most subcommands will need a config file. By default yaybu will search for a Yaybufile in the current directory. It will also check in parent directories. If you want to force it to use a different config file you can use the -c option:
yaybu -c myconfig.yay test
Your configuration can declare variables that it takes on the command line. This is covered in Runtime arguments. If you have defined an argument called instance then you can use it with a command like this:
yaybu up instance=test1234
Running yaybu expand evaluates your configuration without making any changes and prints to stdout a YAML or JSON representation. This is useful for checking that your loops, conditionals and variables have been evaluated as you expected by inspection.
The yaybu test command will run various tests on your configuration to try and find errors before you do an actual deployment. We can’t guarantee success but we can:
- Check any assets you depend on exist
- Check your templates for errors
- Check that any dependencies or relationships you have created between parts or resources are valid
- Check your credentials for all the services you will be accessing
yaybu up is the command that will actually deploy your configuration.
In order to protect your infrastructure this will automatically perform a self-test of your configuration before starting.
If you haven’t defined any parts in your configuration then this command will not do anything.
This command takes --resume or --no-resume. These flags control whether or not yaybu remembers trigger states between deployments. This is convered in more detail in the Provisioner section.
When you run yaybu destroy yaybu will examine all the parts you have defined in your configuration and ask them to destroy themselves:
$ yaybu destroy [*] Destroying load balancer 'test_lb' [*] Destroying node 'test1' [*] Destroying node 'test2'
The yaybu ssh takes an expression and solves it against the configuration. For example, if you had a list of servers you could:
yaybu ssh myservers
This would start an SSH connection to the 3rd server in the list (the first server is at position 0).
If Yaybu is aware of a particular username, port, password or SSH key needed to access that server it will use it. Otherwise it will fall back to using for SSH agent.