From cd559480c95867d272b8a32240e50c390646665b Mon Sep 17 00:00:00 2001 From: Will Szumski Date: Mon, 1 Jul 2019 16:14:10 +0100 Subject: [PATCH] Make sure deploy_logs_local_path exists If log_dir was not set to '/var/log/ironic/', the parent directory of deploy_logs_local_path would not exist and you would see a: OSError: [Errno 13] Permission denied: '/var/log/ironic' In the logs on a failed deployment. This change allows customization of deploy_logs_local_path. Change-Id: I4c4ae77b64fc12006b9193fb1c3f0d13becc367d Story: 2006150 Task: 35649 --- playbooks/roles/bifrost-ironic-install/defaults/main.yml | 4 ++++ playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml | 3 ++- .../roles/bifrost-ironic-install/templates/ironic.conf.j2 | 5 +++++ releasenotes/notes/fix-deploy-logs-175fb352c5730b58.yaml | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/fix-deploy-logs-175fb352c5730b58.yaml diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index 3905900ab..01f690774 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -143,6 +143,10 @@ cors_allowed_origin: "http://localhost:8000" # not need to be modified by the user. enable_cors_credential_support: false +# The path to the directory where the deployment logs should be stored when using +# local storage. +ironic_agent_deploy_logs_local_path: "{{ '/'.join([ironic_log_dir, 'deploy']) }}" + # Set this to true to configure dnsmasq to respond to requests from the # hosts in your dynamic inventory. inventory_dhcp: False diff --git a/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml b/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml index b11f8ecf9..2be3f22f0 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml @@ -128,7 +128,7 @@ - name: "Generate ironic Configuration" include: ironic_config.yml -- name: "Set permissions for {{ ironic_log_dir }} for the ironic user" +- name: "Set permissions on directory for the ironic user" file: path: "{{ item }}" state: directory @@ -137,6 +137,7 @@ group: "ironic" with_items: - "{{ ironic_log_dir }}" + - "{{ ironic_agent_deploy_logs_local_path }}" - name: "Create ironic DB Schema" command: ironic-dbsync --config-file /etc/ironic/ironic.conf create_schema diff --git a/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 b/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 index 96b7a1958..f860175ab 100644 --- a/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 +++ b/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 @@ -35,6 +35,11 @@ auth_strategy = noauth log_dir = {{ ironic_log_dir }} {% endif %} +{% if ironic_agent_deploy_logs_local_path | default("") != "/var/log/ironic/deploy" %} +[agent] +deploy_logs_local_path = {{ ironic_agent_deploy_logs_local_path }} +{% endif %} + [pxe] {% if testing | bool %} pxe_append_params = console=/dev/ttyS0 diff --git a/releasenotes/notes/fix-deploy-logs-175fb352c5730b58.yaml b/releasenotes/notes/fix-deploy-logs-175fb352c5730b58.yaml new file mode 100644 index 000000000..1e0a39383 --- /dev/null +++ b/releasenotes/notes/fix-deploy-logs-175fb352c5730b58.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes an issue where the deployment logs would not be saved if using a + non-default value of ironic_log_dir. See `Story 2006150 `_.