diff --git a/.travis.yml b/.travis.yml
index 6c26cd110b1932bd4449cc4230bbc1a156f9cc70..2b90a2b64ee3438984692b6c1d8481b617ceb109 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -131,6 +131,8 @@ script:
   - $HOME/.local/bin/ansible-playbook -i inventory/inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root tests/testcases/020_check-create-pod.yml $LOG_LEVEL
     ## Ping the between 2 pod
   - $HOME/.local/bin/ansible-playbook -i inventory/inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root tests/testcases/030_check-network.yml $LOG_LEVEL
+    ## Collect env info, enable it once GCS configured, see https://docs.travis-ci.com/user/deployment/gcs
+#  - $HOME/.local/bin/ansible-playbook -i inventory/inventory.ini -u $SSH_USER -e ansible_ssh_user=$SSH_USER $SSH_ARGS -b --become-user=root scritps/collect-info.yaml
 
 after_script:
   - >
diff --git a/scripts/collect-info.yaml b/scripts/collect-info.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..95eb7a9d8f2e7eb368abf33c23d0de7e5f1847c6
--- /dev/null
+++ b/scripts/collect-info.yaml
@@ -0,0 +1,71 @@
+---
+- hosts: all
+  become: true
+  gather_facts: no
+
+  vars:
+    debug: false
+    commands:
+      - name: git_info
+        cmd: cat {kargo,.}/.git/logs/HEAD
+      - name: timedate_info
+        cmd: timedatectl status
+      - name: boots_info
+        cmd: journalctl --list-boots --utc --no-pager
+      - name: space_info
+        cmd: df -h
+      - name: kernel_info
+        cmd: uname -r
+      - name: distro_info
+        cmd: cat /etc/issue.net
+      - name: docker_info
+        cmd: docker info
+      - name: ip_info
+        cmd: ip -4 -o a
+      - name: route_info
+        cmd: ip ro
+      - name: proc_info
+        cmd: ps auxf | grep -v ]$
+      - name: systemctl_info
+        cmd: systemctl status
+      - name: k8s_info
+        cmd: kubectl get all --all-namespaces -o wide
+      - name: k8s_dump_info
+        cmd: kubectl get all --all-namespaces -o yaml
+      - name: errors_info
+        cmd: journalctl -p err --utc --no-pager
+
+    logs:
+      - /var/log/ansible.log
+      - /var/log/ansible/ansible.log
+      - /var/log/syslog
+      - /var/log/daemon.log
+      - /var/log/kern.log
+      - inventory/inventory.ini
+      - cluster.yml
+      - kargo/kargo_default_ubuntu.yaml
+      - kargo/kargo_default_debian.yaml
+      - kargo/kargo_default_common.yaml
+      - kargo/inventory/inventory.cfg
+
+  tasks:
+    - name: Storing commands output
+      shell: "{{ item.cmd }} 2>&1 | tee {{ item.name }}"
+      register: output
+      ignore_errors: true
+      with_items: "{{commands}}"
+
+    - debug: var=item
+      with_items: output.results
+      when: debug
+
+    - name: Fetch results
+      fetch: src={{ item.name }} dest=/tmp/collect-info/commands
+      with_items: "{{commands}}"
+
+    - name: Fetch logs
+      fetch: src={{ item }} dest=/tmp/collect-info/logs
+      with_items: "{{logs}}"
+
+    - name: Pack results and logs
+      local_action: shell GZIP=-9 tar cvzf logs.tar.gz -C /tmp collect-info