The obscene docker-compose deploy with ansible cli
Project description
Deploying a docker-compose.yml
Provide ssh configuration and target dir as first argument, then the path to a docker-compose.yml file:
ansible-compose user@host:22/absolute/target/path ./docker-compose-example.yml
Or, deploy from a url, just like kubectl apply would let you:
ansible-compose user@host:22/absolute/target/path https://raw.git.../docker-compose.yml
Automatic creation of volume dirs
It will try to automatically create the volume bind dirs for you. To set the uid and/or guid, set them as env vars, either in the compose.yml:
environment: uid: 1001 gid: 100
Or with an env var:
web_environment_uid=1001
Transforms for docker-compose.yml on the CLI
Transforms apply on the docker-compose.yml as if it was a template we are going to render using environment variables.
- drop_web_environment=1
The best source of documentation for this feature is the test script.
with env vars: servicename_environment_something=foo will overwrite the something env var of the servicename service with the foo value, whereas setting drop_servicename_environment_something=1 will drop the value at all.
This kind of filter will also work on service options ie. servicename_image=foo or drop_servicename_image=1 would respectively override and drop the image key of the servicename service. It also works on services themselves, and any other key at the first level of the compose document.
Note that any other argument will be passed to ansible-playbook.
Running commands on the compose of a target
Provide ssh configuration and target dir as first argument, then the docker-compose command:
ansible-compose user@host:22/absolute/target/path stop ansible-compose user@host:22/absolute/target/path start ansible-compose user@host:22/absolute/target/path logs ansible-compose user@host:22/absolute/target/path help
Installation
Local:
pip install --user ansible-compose export PATH="$HOME/.local/bin:$PATH" echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
The current configuration in CI for image yourlabs/ansible-compose is:
ANSIBLE_HOST_KEY_CHECKING=false
SSH_PRIVATE_KEY=our passwordless private key generated with ssh-keygen -t ed25519 and default options
SSH_INSECURE=true not checking any host key today !
Example gitlab ci job
deploy:
stage: deploy
image: yourlabs/ansible-compose
script:
- ansible-compose
deploy@example.com/home/staging
./docker-compose.yml
# composed to rely on $CI_COMMIT_SHA
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ansible-compose-0.1.4.post7.tar.gz
.
File metadata
- Download URL: ansible-compose-0.1.4.post7.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 311b958caeeba3bec19aef8ee3dcf0ae8baaf577c4acf34688c472ce3ad16e84 |
|
MD5 | 7cda1cd4eccb5c503200478ce26ac006 |
|
BLAKE2b-256 | 62d195a418da7735faeaa5d18169b3956473529096702cdc1698855e4234098b |