# Configuration
This lists all variables you can use to configure our playbook.
# applications.yml
# DNS configuration
Variables | Default value | Description |
---|---|---|
app_dns_domain | "domain.tld" | DNS (sub)domain use to build the app URLs. |
api_dns_name | "api.{{ app_dns_domain }}" | DNS name use for the API URL. |
connect_dns_name | "connect.{{ app_dns_domain }}" | DNS name use for the Connect URL. |
platform_back_dns_name | "platform-back.{{ app_dns_domain }}" | DNS name use for the Platform back URL. |
platform_front_dns_name | "platform.{{ app_dns_domain }}" | DNS name use for the Platform URL. |
iam_dns_name | "iam.{{ app_dns_domain }}" | DNS name use for the Keycloak (identity provider) URL. |
documentation_dns_name | "doc.{{ app_dns_domain }}" | DNS name use for the documentation URL. |
archive_dns_name | "archive.{{ app_dns_domain }}" | DNS name use for the archive URL. |
marketplace_back_dns_name | "marketplace-back.{{ app_dns_domain }}" | DNS name use for the marketplace back URL. |
marketplace_front_dns_name | "marketplace.{{ app_dns_domain }}" | DNS name use for fhe marketplace URL. |
For example if:
app_dns_domain: bimdata.company.tld
api_dns_name: `"api.{{ app_dns_domain }}"`
The DNS name for the API will be: api.bimdata.company.tld
.
Each name needs to be defined in the corresponding authoritative DNS server. This playbook does not manage this.
# SMTP Configuration
Variables | Default value | Description |
---|---|---|
smtp_host | "" | SMTP server address. |
smtp_port | 587 | SMTP server port. |
smtp_user | "" | User used for the authentication on the SMTP server. |
smtp_pass | "{{ vault_smtp_pass }}" | Password used for the authentication on the SMTP server. |
smtp_use_tls | true | If the SMTP connection should use TLS or not. |
smtp_default_email | "" | Email address use as default sender. |
# Web configuration
Variables | Default value | Description |
---|---|---|
external_port_http | 80 | TCP port for HTTP connections on the web server. |
external_port_https | 443 | TCP port for HTTPS connections on the web server. |
max_upload_size | "1g" | Maximum upload file size (ifc… etc). |
# Data storage
Variables | Default value | Description |
---|---|---|
bimdata_path | "/opt/bimdata" | Where we will install our needed files on the servers. |
bimdata_docker_volume_path | "{{ bimdata_path }}/datas" | Where will your datas will be store on the servers. |
bimdata_dockerfiles_path | "{{ bimdata_path }}/dockerfiles" | Where we store the dockerfiles use to start the containers. |
Object storage (Swift):
Variables | Default value | Description |
---|---|---|
swift_enabled | false | Enable the swift storage or not. |
swift_auth_url | "" | The URL of the auth server. |
swift_tenant_id | "" | The tenant/project id to use when authenticating. |
swift_tenant_name | "" | The tenant/project name to use when authenticating. |
swift_username | "" | The username to use to authenticate. |
swift_password | "{{ vault_swift_password }}" | The password/key to use to authenticate. |
swift_temp_url_key | "{{ vault_swift_temp_url_key }}" | The temporary URL key (see openstack documentation |
swift_api_container_name | "" | The container in which to store the API files. |
swift_connect_container_name | "" | The container in which to store the Connect files. |
# Applications configuration
Variables | Default value | Description |
---|---|---|
api_secret_key | "{{ vault_api_secret_key }}" | You should not change this. |
connect_secret_key | "{{ vault_connect_secret_key }}" | You should not change this. |
connect_invitation_secret | "{{ vault_connect_invitation_secret }}" | You should not change this. |
connect_invitation_client_secret | "{{ vault_connect_invitation_client_secret }}" | You should not change this. |
platform_back_secret_key | "{{ vault_platform_back_secret_key }}" | You should not change this. |
platform_back_webhook_secret | "{{ vault_platform_back_webhook_secret }}" | You should not change this. |
platform_front_project_status_limit_new | "5" | Number of days during which the project is considered new. |
platform_front_project_status_limit_active | "15" | Number of days during before the project is considered inactive. |
iam_user | "admin" | Keycloak administrator user. |
iam_password | "{{ vault_iam_password }}" | Keycloak administrator password. |
marketplace_enabled | false | Enable / disable marketplace. |
marketplace_back_secret_key | "{{ vault_marketplace_back_secret_key }}" | You should not change this. |
marketplace_front_workers | 2 | Number of node workers. |
workers_export_instance | 1 | Number of replicas deployed on each server. |
workers_export_cpu | 1 | Number of CPUs allocated for each replicas. |
workers_gltf_instance | 1 | Number of replicas deployed on each server. |
workers_gltf_cpu | 1 | Number of CPUs allocated for each replicas. |
workers_extract_instance | 1 | Number of replicas deployed on each server. |
workers_extract_cpu | 1 | Number of CPUs allocated for each replicas. |
workers_extract_quantities_instance | 1 | Number of replicas deployed on each server. |
workers_extract_quantities_cpu | 1 | Number of CPUs allocated for each replicas. |
workers_svg_instance | 1 | Number of replicas deployed on each server. |
workers_svg_cpu | 1 | Number of CPUs allocated for each replicas. |
workers_merge_instance | 1 | Number of replicas deployed on each server. |
workers_merge_cpu | 1 | Number of CPUs allocated for each replicas. |
workers_xkt_instance | 1 | Number of replicas deployed on each server. |
workers_xkt_cpu | 1 | Number of CPUs allocated for each replicas. |
workers_preview_instance | 1 | Number of replicas deployed on each server. |
workers_preview_cpu | 1 | Number of CPUs allocated for each replicas. |
master_token | "{{ vault_master_token }}" | Master token use for authentication between workers and API. |
app_env | "staging" | Environnement definition for some app. Must not be changed. |
mapbox_token | "{{ vault_mapbox_token }}" | Token for authentication on the Mapbox API. |
# connectivity.yml
# Ansible connectivity
Variables | Default value | Description |
---|---|---|
ansible_python_interpreter | "/usr/bin/python3" | Force the use of python3. |
ansible_ssh_pipelining | true | Improve ansible performances. |
# SSH Bastion
If you can't use SSH directly from this computer to the servers where you want to install our applications, you can use a bastion that will proxy the ssh connections.
Variables | Default value | Description |
---|---|---|
use_bastion | false | Configure if you want to use a bastion or not. |
bastion_ssh_addr | "" | Bastion adresse use for the ssh connection. |
bastion_ssh_port | 22 | Bastion TCP port use for the ssh connection. |
bastion_ssh_user | "{{ lookup('env', 'USER') }}" | SSH user for authentication on the Bastion. |
bastion_ssh_extra_options | undefined | String to add other SSH options. |
# Proxy
If your servers can't access the web directly, you may need to configure a proxy to access our docker registry for example.
Variables | Default value | Description |
---|---|---|
http_proxy | "" | HTTP proxy address. |
https_proxy | "" | HTTPS proxy address. |
no_proxy | [] | List of domains / IP where the proxy must not be used. |
# databases.yml
# External postgres cluster
Variables | Default value | Description |
---|---|---|
use_external_db | false | Configure if you want to use a postgres instance manage by this playbook or not. |
external_db_host | "" | Postgres cluster address use for connection if use_external_db: true. |
external_db_port | 5432 | Postgres cluster TCP port use for connection if use_external_db: true. |
# Databases
Variables | Default value | Description |
---|---|---|
db_api_name | "api" | Database name for the API. |
db_api_user | "api" | Postgres user for the API. |
db_api_password | "{{ vault_db_api_password }}" | Postgres password for the API. |
db_connect_name | "connect" | Database name for Connect. |
db_connect_user | "connect" | Postgres user for Connect. |
db_connect_password | "{{ vault_db_connect_password }}" | Postgres password for Connect. |
db_platform_name | "platform" | Database name for the Platform. |
db_platform_user | "platform" | Postgres user for the Platform. |
db_platform_password | "{{ vault_db_platform_password }}" | Postgres password for the Platform. |
db_iam_name | "iam" | Database name for Keycloak. |
db_iam_user | "iam" | Postgres user for Keycloak. |
db_iam_password | "{{ vault_db_iam_password }}" | Postgres password for Keycloak. |
db_marketplace_name | "marketplace" | Database name for the Marketplace. |
db_marketplace_user | "marketplace" | Postgres user for the Marketplace. |
db_marketplace_password | "{{ vault_db_marketplace_password }}" | Postgres password for the Marketplace. |
If use_external_db: false
AND if the [db] server is different from the [app] server (in the inventory)
each Postgres instance will need to use its own TCP port. There are defined with these variables.
You will need to configure your firewall: the [app] server will need to be able to communication
with the [db] server on these ports.
Variables | Default value | Description |
---|---|---|
db_api_external_port | 5432 | Postgres external port for the API. |
db_connect_external_port | 5433 | Postgres external port for Connect. |
db_platform_external_port | 5434 | Postgres external port for the Platform. |
db_iam_external_port | 5435 | Postgres external port for Keycloak. |
db_marketplace_external_port | 5436 | Postgres external port for Keycloak. |
db_server_addr | "{{ hostvars[groups['db'][0]]['ansible_default_ipv4']['address'] }}" | Use to determine the IP that will be use for Postgres connection between [app] and [db]. |
# docker_images.yml
Variables | Default value | Description |
---|---|---|
docker_private_registry | "docker-registry.bimdata.io" | Define the registry address from which most of the images will come from. |
docker_registries | List of registries informations use to configure docker authentication. | |
docker_rabbitmq_image | "rabbitmq" | RabbitMQ docker image (use Dockerhub by default). |
docker_rabbitmq_tag | "3.8-management-alpine" | RabbitMQ docker tag. |
docker_postgres_image | "postgres" | Postgres docker image (use Dockerhub by default). |
docker_postgres_tag | "10-alpine" | Postgres docker tag. |
docker_api_image | "{{ docker_private_registry }}/on-prem/api" | API docker image. |
docker_api_tag | latest | API docker tag. |
docker_connect_image | "{{ docker_private_registry }}/on-prem/connect" | Connect docker image. |
docker_connect_tag | latest | Connect docker tag. |
docker_platform_back_image | "{{ docker_private_registry }}/on-prem/platform_back" | Platform back docker image. |
docker_platform_back_tag | latest | Platform back docker tag. |
docker_platform_front_image | "{{ docker_private_registry }}/on-prem/platform" | Platform front docker image. |
docker_platform_front_tag | latest | Platform front docker tag. |
docker_iam_image | "{{ docker_private_registry }}/on-prem/iam" | Keycloak docker image. |
docker_iam_tag | latest | Keycloak docker tag. |
docker_documentation_image | "{{ docker_private_registry }}/on-prem/documentation" | Documentation docker image. |
docker_documentation_tag | latest | Documentation docker tag. |
docker_archive_image | "{{ docker_private_registry }}/on-prem/archive" | Archive docker image. |
docker_archive_tag | latest | Archive docker tag. |
docker_marketplace_back_image | "{{ docker_private_registry }}/on-premise/marketplace_back" | Marketplace back images. |
docker_marketplace_back_tag | latest | Marketplace back docker tag. |
docker_marketplace_front_image | "{{ docker_private_registry }}/on-premise/marketplace" | Marketplace front docker image. |
docker_marketplace_front_tag | latest | Marketplace front docker tag. |
docker_workers_export_image | "{{ docker_private_registry }}/on-prem/workers" | Worker export docker image. |
docker_workers_export_tag | latest | Worker export docker tag. |
docker_workers_gltf_image | "{{ docker_private_registry }}/on-prem/workers" | Worker GLTF docker image. |
docker_workers_gltf_tag | latest | Worker GLTF docker tag. |
docker_workers_extract_image | "{{ docker_private_registry }}/on-prem/workers" | Worker extract docker image. |
docker_workers_extract_tag | latest | Worker extract docker tag. |
docker_workers_extract_quantities_image | "{{ docker_private_registry }}/on-prem/workers" | Worker extract quantities docker image. |
docker_workers_extract_quantities_tag | latest | Worker extract quantities docker tag. |
docker_workers_svg_image | "{{ docker_private_registry }}/on-prem/workers" | Worker SVG docker image. |
docker_workers_svg_tag | latest | Worker SVG docker tag. |
docker_workers_merge_image | "{{ docker_private_registry }}/on-prem/workers" | Worker merge docker image. |
docker_workers_merge_tag | latest | Worker merge docker tag. |
docker_workers_xkt_image | "{{ docker_private_registry }}/on-prem/xkt_worker" | Worker XKT docker image. |
docker_workers_xkt_tag | latest | Worker XKT docker tag. |
docker_workers_preview_image | "{{ docker_private_registry }}/on-prem/viewer_360" | Worker preview docker image. |
docker_workers_preview_tag | latest | Worker preview docker tag. |
# docker.yml
Variables | Default value | Description |
---|---|---|
install_docker | true | Install Docker or not (if not, docker need to be already installed). |
docker_apt_dependencies | ["python3-docker", "gnupg", "apt-transport-https", "ca-certificates"] | List of APT packages to install before Docker. |
docker_apt_release_channel | "stable" | Docker version that will be installed. |
docker_repo_base_url | "https://download.docker.com/linux" | Docker APT repository. |
docker_apt_key_url | "{{ docker_repo_base_url }}/{{ ansible_distribution | lower }}/gpg" |
docker_apt_repo_url | "{{ docker_repo_base_url }}/{{ ansible_distribution | lower }}" |
docker_edition | ce | Docker edition that will be installed ('ee' for 'Enterprise Edition' or 'ce' for 'Community Edition') |
docker_pkg_name | "docker-{{ docker_edition }}" | Docker APT package name that will be installed. |
docker_pkg_version | "" | Docker APT package version that will be installed. |
docker_pkg_version_hold | "{{ docker_pkg_version | default(false) |
docker_svc_name | "docker" | Docker service name. |
docker_install_compose | true | Install Docker compose or not (if noot, need to be already installed.) |
docker_compose_version | "1.29.2" | Docker compose version to install. |
docker_compose_url | "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-{{ ansible_system }}-{{ ansible_architecture }}" | URL to download docker compose. |
docker_compose_path | "/usr/local/bin/docker-compose" | Path of where Docker compose will be installed. |
docker_use_extra_hosts | false | Add /etc/hosts value in containers if needed. |
docker_extra_hosts | [] | list of hosts that will be added to /etc/hosts of containers. |
# nginx.yml
You should not have to modify these variables in most cases.
Variables | Default value | Description |
---|---|---|
nginx_custom_conf | Nginx custom configuration. | |
nginx_vhost_override | Nginx vhost configuration. |
# rabbitmq.yml
Variables | Default value | Description |
---|---|---|
use_external_rabbitmq | false | Set to true if you want to use your own RabbitMQ instance. |
external_rabbitmq_host | "" | RabbitMQ cluster address if use_external_rabbitmq: true. |
external_rabbitmq_port | 5672 | RabbitMQ cluster TCP port if use_external_rabbitmq: true. |
rabbitmq_user | "bimdata" | RabbitMQ user use for authentication. |
rabbitmq_password | "{{ vault_rabbitmq_password }}" | RabbitMQ password use for authentication. |
rabbitmq_admin_dns_name | "rabbitmq.{{ app_dns_domain }}" | RabbitMQ dns name. |
rabbitmq_external_port | 5672 | RabbitMQ external port. |
rabbitmq_server_addr | "{{ rabbitmq_admin_dns_name }}" | RabbitMQ server address. |
# tls.yml
Variables | Default value | Description |
---|---|---|
tls_enabled | false | Enable external TLS or not. |
nginx_use_pregen_dh | true | Use pre-defined diffie hellman parameters. If false it'll generate new one. This take a lot of time. |
tls_ca_certificate | "" | CA certificate of the CA used to sign the certificates for the applications. (PEM format.) |
tls_subca_certificates | [] | If a complexe CA architecture is used, tls_ca_certificate should contain the main CA, and this list all the intermediate ones. |
tls_api_key | "{{ vault_tls_api_key }}" | API TLS key (PEM format). |
tls_api_cert | "" | API TLS Certificate (PEM format). |
tls_connect_key | "{{ vault_tls_connect_key }}" | Connect TLS key (PEM format). |
tls_connect_cert | "" | Connect TLS Certificate (PEM format). |
tls_platform_back_key | "{{ vault_tls_platform_back_key }}" | Platform back TLS key (PEM format). |
tls_platform_back_cert | "" | Platform back TLS Certificate (PEM format). |
tls_platform_front_key | "{{ vault_tls_platform_front_key }}" | Platform front TLS key (PEM format). |
tls_platform_front_cert | "" | Platform front TLS Certificate (PEM format). |
tls_iam_key | "{{ vault_tls_iam_key }}" | Keycloak TLS key (PEM format). |
tls_iam_cert | "" | Keycloak TLS Certificate (PEM format). |
tls_rabbitmq_admin_key | "{{ vault_tls_rabbitmq_admin_key }}" | RabbitMQ TLS key (PEM format). (Only needed if use_external_rabbitmq: false.) |
tls_rabbitmq_admin_cert | "" | RabbitMQ TLS Certificate (PEM format). (Only needed if use_external_rabbitmq: false.) |
tls_documentation_key | "{{ vault_tls_documentation_key }}" | Documentation TLS key (PEM format). |
tls_documentation_cert | "" | Documentation TLS Certificate (PEM format). |
tls_archive_key | "{{ vault_tls_archive_key }}" | Archive TLS key (PEM format). |
tls_archive_cert | "" | Archive TLS Certificate (PEM format). |
tls_marketplace_back_key | "{{ vault_tls_marketplace_back_key }}" | Marketplace back TLS key (PEM format). |
tls_marketplace_back_cert | "" | Marketplace back TLS Certificate (PEM format). |
tls_marketplace_front_key | "{{ vault_tls_marketplace_front_key }}" | Marketplace front TLS key (PEM format). |
tls_marketplace_front_cert | "" | Marketplace front TLS Certificate (PEM format). |
# vault.yml
In this file, all private pieces of information are defined. Like passwords, TLS keys, or other security stuff.
You should replace all the values and encrypt the file with ansible-vault
(opens new window).