Deploy a service¶
As with other deployment tasks, do the setup tasks before the steps below. If you run into trouble, read the Troubleshoot guide.
1. Run Salt function¶
To limit the output to changes and failures, add a --state-output=changes
option to the commands below, for example:
./run.py --state-output=changes 'docs' state.apply
Deploy a service¶
Indicate the desired target and use the state.apply
function, for example:
./run.py 'docs' state.apply
The state.apply
function often completes within one minute. You can ignore this warning: DeprecationWarning: encoding is deprecated, Use raw=False instead
.
Note
If you want to check whether a deployment is simply slow (frequent) or actually stalled (rare), watch Salt’s activity.
Tip
To override Pillar data, use, for example:
./run.py 'mytarget-dev' state.apply pillar='{"python_apps":{"myapp":{"git":{"branch":"BRANCH_NAME"}}}}'
Deploy part of a service¶
To run a specific state file, run, for example:
./run.py 'docs' state.sls elasticsearch
To run a specific SLS ID, run, for example:
./run.py '*' state.sls_id root_authorized_keys core.sshd
Note
The requirements of the state file or SLS ID must be met. For example, to only create a PostgreSQL user, run:
./run.py --state-output=changes 'kingfisher-main' state.sls postgres,postgres.backup
2. Check Salt output¶
Look for these lines at the end of the output in the primary terminal:
Summary for docs
-------------
Succeeded: ## (changed=#)
Failed: 0
Then:
Check that the app is still responding in your web browser.
If there are any failed states, look for each in the output (red text) (or search for
Result: False
) and debug.If there are any changed states, look for each in the output (blue text) (or grep for
Changes: \n[^\n-]
) and verify the changes.
Common changed states are:
- Function: service.running, ID: apache2
Apache was reloaded
States that always report changes:
cmd.run, unless
onchanges
is specifiedpip.installed, if
upgrade
is setpostgres_privileges.present
, ifobject_name
isALL
3. Manual cleanup¶
If you changed the server name of a virtual host that uses HTTPS, you will need to Acquire SSL certificates for the new server name.
If you removed a Salt configuration, follow the linked steps to cleanup manually.