blob: 3adeca64a0b157bbcf4b5be866469a5137279045 [file] [log] [blame]
---
# head-diag/tasks/main.yml
- name: Create diag_dir subdirs
file:
dest="~/{{ diag_dir }}/{{ item }}"
state=directory
with_items:
- head
- juju
- openstack
- onos
- docker
- name: Head node diag collection
shell: "{{ item }} > ~/{{ diag_dir }}/head/{{ item | regex_replace('[^\\w-]', '_')}}"
ignore_errors: yes
args:
creates: "~/{{ diag_dir }}/head/{{ item | regex_replace('[^\\w-]', '_')}}"
with_items:
- "ifconfig -a"
- "route -n"
- "arp -n"
- "date"
- "brctl show"
- "cat /etc/resolv.conf"
- "cat /etc/lsb-release"
- "sudo virsh list"
- "sudo lxc list"
- "sudo docker ps -a"
- name: Juju diag collection
shell: "{{ item }} > ~/{{ diag_dir }}/juju/{{ item | regex_replace('[^\\w-]', '_')}}"
ignore_errors: yes
args:
creates: "~/{{ diag_dir }}/juju/{{ item | regex_replace('[^\\w-]', '_')}}"
with_items:
- "juju status --format=summary"
- "juju status --format=tabular"
- "juju status --format=json"
- name: OpenStack diag collection
shell: "source /opt/cord_profile/admin-openrc.sh && {{ item }} > ~/{{ diag_dir }}/openstack/{{ item | regex_replace('[^\\w-]', '_')}}"
ignore_errors: yes
args:
executable: "/bin/bash"
creates: "~/{{ diag_dir }}/openstack/{{ item | regex_replace('[^\\w-]', '_')}}"
with_items:
- "glance image-list"
- "nova list --all-tenants"
- "nova host-list"
- "nova hypervisor-list"
- "keystone tenant-list"
- "keystone user-list"
- "neutron net-list"
- "neutron subnet-list"
- "neutron port-list"
- name: ONOS diag collection - REST API
shell: "curl -X GET -u karaf:karaf http://onos-cord:8182/onos/v1/{{ item }} | python -m json.tool > ~/{{ diag_dir }}/onos/rest_{{ item | regex_replace('[^\\w-]', '_') }}"
ignore_errors: yes
args:
creates: "~/{{ diag_dir }}/onos/rest_{{ item | regex_replace('[^\\w-]', '_')}}"
warn: False # get_url or uri can't easily redirect to a file
with_items:
- "hosts"
- name: ONOS diag collection - ONOS CLI
shell: "sshpass -p 'karaf' ssh -p 8102 karaf@onos-cord {{ item }} > ~/{{ diag_dir }}/onos/{{ item | regex_replace('[^\\w-]', '_') }}"
ignore_errors: yes
args:
creates: "~/{{ diag_dir }}/onos/{{ item | regex_replace('[^\\w-]', '_')}}"
with_items:
- "apps -s -a"
- "bundle:list"
- "cordvtn-node-check compute1"
- "cordvtn-nodes"
- "cordvtn-networks"
- "cordvtn-ports"
- "dhcp-list"
- "devices"
- "flows"
- "hosts"
- "log:display"
- "nodes"
- "netcfg"
- "ports"
- "summary"
- name: Docker diag collection - Find names for all running Docker containers
command: sudo docker ps --format '{{'{{'}} .Names {{'}}'}}'
ignore_errors: yes
register: docker_containers
tags:
- skip_ansible_lint # collecting docker container names
- name: Docker diag collection - Collect logs from Docker containers
shell: "sudo docker logs {{ item }} > ~/{{ diag_dir }}/docker/{{ item | regex_replace('[^\\w-]', '_')}} 2>&1"
ignore_errors: yes
args:
creates: "~/{{ diag_dir }}/docker/{{ item | regex_replace('[^\\w-]', '_')}}"
with_items: "{{ docker_containers.stdout_lines }}"
tags:
- skip_ansible_lint # ansible-lint interprets the \n incorrectly