From 5b03bc5714636539215d041249e476d304865a51 Mon Sep 17 00:00:00 2001 From: till Date: Thu, 30 Jan 2020 12:30:19 +0100 Subject: [PATCH 1/2] Refactor: ensure all vars are set correctly - "validates" key, secret and volumes - moves logic for volumes from template to preflight --- tasks/main.yml | 2 ++ tasks/preflight.yml | 26 ++++++++++++++++++++++++++ templates/minio.env.j2 | 7 ++----- 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 tasks/preflight.yml diff --git a/tasks/main.yml b/tasks/main.yml index f49d6da..4e1c2c3 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -7,6 +7,8 @@ - ansible_python_version is version_compare('2.6.0', '>=') - ansible_python_version is version_compare('2.7.9', '<') +- import_tasks: preflight.yml + - include_tasks: install-server.yml when: minio_install_server diff --git a/tasks/preflight.yml b/tasks/preflight.yml new file mode 100644 index 0000000..34e0c5b --- /dev/null +++ b/tasks/preflight.yml @@ -0,0 +1,26 @@ +--- +- name: Validate access key + fail: + msg: "minio_access_key is set but must be at least three characters" + when: minio_access_key|length < 3 and minio_access_key|length != 0 + +- name: Validate secret key + fail: + msg: "minio_secret_key is set but must be at least 8 characters" + when: minio_secret_key|length < 8 and minio_secret_key|length != 0 + +- name: Setup __minio_volumes (cluster context) + set_fact: + __minio_volumes: "{{ minio_server_cluster_nodes | join(' ') }}" + when: + minio_server_cluster_nodes|length > 0 + +- name: Setup __minio_volumes (single node) + set_fact: + __minio_volumes: "{{ minio_server_datadirs | join(' ') }}" + when: minio_server_datadirs|length > 0 and minio_server_cluster_nodes|length == 0 + +- name: Validate __minio_volumes + fail: + msg: "Please set minio_server_cluster_nodes or minio_server_datadirs" + when: __minio_volumes|length == 0 diff --git a/templates/minio.env.j2 b/templates/minio.env.j2 index 84723fc..a899a16 100644 --- a/templates/minio.env.j2 +++ b/templates/minio.env.j2 @@ -1,11 +1,8 @@ {{ ansible_managed | comment }} # Minio local/remote volumes. -{% if minio_server_cluster_nodes | length > 0 %} -MINIO_VOLUMES="{{ minio_server_cluster_nodes | join(' ') }}" -{% else %} -MINIO_VOLUMES="{{ minio_server_datadirs | join(' ') }}" -{% endif %} +MINIO_VOLUMES="{{ __minio_volumes }}" + # Minio cli options. MINIO_OPTS="--address {{ minio_server_addr }} {{ minio_server_opts }}" From 92bc38b5f96eaa75f7282d7b4a0ee0652365af36 Mon Sep 17 00:00:00 2001 From: till Date: Thu, 30 Jan 2020 12:32:04 +0100 Subject: [PATCH 2/2] Fix: disable ExecPreStart check - doesn't seem to be able to get the env vars on CentOS7 - seems like a known problem --- templates/minio.service.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/minio.service.j2 b/templates/minio.service.j2 index 33fb255..f3198db 100644 --- a/templates/minio.service.j2 +++ b/templates/minio.service.j2 @@ -20,7 +20,7 @@ Group={{ minio_group }} PermissionsStartOnly=true EnvironmentFile={{ minio_server_envfile }} -ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in {{ minio_server_envfile }}\"" +#ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in {{ minio_server_envfile }}\"" ExecStart={{ minio_server_bin }} server $MINIO_OPTS $MINIO_VOLUMES