compose_deploy
Ansible role - compose_deploy
:star: Star us on GitHub — it motivates us a lot!
Install and configure docker-compose service
:warning: Requirements
Ansible >= 2.10
:zap: Installation
ansible-galaxy install bngameni.compose_deploy
:gear: Role variables
Variable | Default Value | Description |
---|---|---|
compose_deploy_volumes_dir | [] | Paths to volumes to create (only when using the "bind" type) |
compose_deploy_manifests | [] | Path to the docker-compose.yaml file (leave blank if using other files) |
compose_deploy_templates | [] | Path to the docker-compose.yaml files as Jinja2 templates (leave blank if using other files) |
compose_deploy_definition | [] | Compose definition (content of the docker-compose file) |
compose_deploy_config_files | [] | Path to folder or files to copy to the remote for the compose file |
compose_deploy_use_selfsigned_ssl | false | Use SSL for installing the compose service. Set the domain name to get self-signed certificates |
compose_deploy_domain_name | [] | Domain name to use for installation |
Additionally, here is a structure of items:
- compose_deploy_manifests
- compose_deploy_templates
- compose_deploy_config_files
Attributes | Default Value | Description |
---|---|---|
src | None required | The source path of the file |
dest | None required | The destination path on the remote server where the file will be |
mode | 0755 | The file permissions/mode for the file |
- compose_deploy_definition
Attributes | Default Value | Description |
---|---|---|
name | None required | The name of service/application |
value | None required | The docker-compose definition(content of manifest) |
- compose_deploy_volumes_dir
Attributes | Default Value | Description |
---|---|---|
path | None required | The path to the volume to create(bind type) |
mode | None required | The file permissions/mode for the file |
- compose_deploy_domain_name
Attributes | Default Value | Description |
---|---|---|
dest_path | /etc/ssl | The destination path on the remote server where the manifest file will be copied. |
country_name | FR | The country name used for generating self-signed certificates. |
common_name | None required | The common name used for generating self-signed certificates. |
state_or_province_name | None | The state or province name used for generating self-signed certificates. |
organization_name | None | The organization name used for generating self-signed certificates. |
organizational_unit_name | None | The organizational unit name used for generating self-signed certificates. |
email_address | None | The email address used for generating self-signed certificates. |
:arrows_counterclockwise: Dependencies
N/A
:pencil2: Example Playbook
- Use compose definition
---
- name: Converge
hosts: all
vars:
compose_deploy_volumes_dir:
- /app/nginx
compose_deploy_config_files:
- src: files/nginx/nginx.conf
dest: /app/nginx
compose_deploy_use_selfsigned_ssl: true
compose_deploy_domain_names:
- name: "localhost"
compose_deploy_definition:
- name: flask
value:
version: '3.9'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
volumes:
- /app/db:/var/lib/postgresql/data
adminer:
image: adminer
restart: always
nginx:
image: nginx
restart: always
ports:
- "80:80/tcp"
- "443:443/tcp"
volumes:
- type: bind
source: /app/nginx/nginx.conf
target: /etc/nginx/conf.d/nginx.conf
- type: bind
source: /etc/ssl/localhost
target: /etc/ssl/localhost
roles:
- bngameni.compose_deploy
- Use yaml file
---
- name: Converge
hosts: all
vars:
compose_deploy_volumes_dir:
- /app/nginx
compose_deploy_config_files:
- src: files/nginx/nginx.conf
dest: /app/nginx
compose_deploy_use_selfsigned_ssl: true
compose_deploy_domain_names:
- name: "localhost"
compose_deploy_manifests:
- src: files/compose/docker-compose.yml
dest: /app/
roles:
- bngameni.compose_deploy
- Use jinja2 template file
---
- name: Converge
hosts: all
vars:
compose_deploy_volumes_dir:
- /app/nginx
compose_deploy_config_files:
- src: files/nginx/nginx.conf
dest: /app/nginx
compose_deploy_use_selfsigned_ssl: true
compose_deploy_domain_names:
- name: "localhost"
compose_deploy_templates:
- src: templates/compose/docker-compose.yml.j2
dest: /app/
roles:
- bngameni.compose_deploy
:closed_lock_with_key: Hardening
:heart_eyes_cat: Contributing
:copyright: License
Install
ansible-galaxy install bngameni/ansible-role-compose_deploy
License
mpl-2.0
Downloads
16