From 252a30aee8a7148aff5a54f20a079384ac1f8187 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 8 Aug 2016 16:52:08 +0200 Subject: [PATCH] Collect ansible logs as artifacts Extends https://github.com/kubespray/kargo/pull/406 Signed-off-by: Bogdan Dobrelya --- .travis.yml | 2 ++ scripts/configure-logs.yaml | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 scripts/configure-logs.yaml diff --git a/.travis.yml b/.travis.yml index 2b90a2b64..998a0aa31 100644 --- a/.travis.yml +++ b/.travis.yml @@ -109,6 +109,8 @@ before_script: - $HOME/.local/bin/ansible-playbook --version - cp tests/ansible.cfg . # - "echo $HOME/.local/bin/ansible-playbook -i inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root -e '{\"cloud_provider\": true}' $LOG_LEVEL -e kube_network_plugin=${KUBE_NETWORK_PLUGIN} setup-kubernetes/cluster.yml" + ## Configure ansible deployment logs to be collected as an artifact. Enable when GCS configured, see https://docs.travis-ci.com/user/deployment/gcs +# - $HOME/.local/bin/ansible-playbook -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root scritps/configure-logs.yaml script: - > diff --git a/scripts/configure-logs.yaml b/scripts/configure-logs.yaml new file mode 100644 index 000000000..d093e9279 --- /dev/null +++ b/scripts/configure-logs.yaml @@ -0,0 +1,39 @@ +--- +- hosts: localhost + become: true + gather_facts: no + + vars: + log_path: /var/log/ansible/ + conf_file: /etc/ansible/ansible.cfg + human_readable_plugin: false + callback_plugin_path: /usr/share/ansible/plugins/callback + + tasks: + - name: LOGS | ensure log path + file: path="{{log_path}}" state=directory owner={{ansible_ssh_user}} + + - name: LOGS | ensure plugin path + file: path="{{callback_plugin_path}}" state=directory owner={{ansible_ssh_user}} + when: human_readable_plugin + + - name: LOGS | get plugin + git: repo=https://gist.github.com/cd706de198c85a8255f6.git dest=/tmp/cd706de198c85a8255f6 + when: human_readable_plugin + + - name: LOGS | install plugin + copy: src=/tmp/cd706de198c85a8255f6/human_log.py dest="{{callback_plugin_path}}" + when: human_readable_plugin + + - name: LOGS | config + lineinfile: + line: "log_path={{log_path}}/ansible.log" + regexp: "^#log_path|^log_path" + dest: "{{conf_file}}" + + - name: LOGS | callback plugin + lineinfile: + line: "callback_plugins={{callback_plugin_path}}" + regexp: "^#callback_plugins|^callback_plugins" + dest: "{{conf_file}}" + when: human_readable_plugin