aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Smith <aasmith@redhat.com>2018-10-02 15:09:34 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-10-02 15:09:34 +0000
commit328129a1fd4ae54fe012379439464a56d15d4681 (patch)
treea89e97ab1027cc025bcf7d82ac4eb424d07cb0fb
parentdda0e18b1dd1a9a2397f43262124d4de3dc424e7 (diff)
parent24c5124e304b8e2854d98284f6ee4715a75ee735 (diff)
Merge "WIP: Add role to auto install docker on hosts"
-rw-r--r--docker/ansible/collectd_service.yml20
-rw-r--r--docker/ansible/collectd_ves.yml20
-rw-r--r--docker/ansible/default.inv18
-rw-r--r--docker/ansible/roles/config_files/tasks/ipmi.yml32
-rw-r--r--docker/ansible/roles/config_files/tasks/main.yml6
-rw-r--r--docker/ansible/roles/config_files/tasks/mcelog.yml17
-rw-r--r--docker/ansible/roles/config_files/tasks/uuid.yml (renamed from docker/ansible/roles/config_files/tasks/types_db.yml)11
-rw-r--r--docker/ansible/roles/config_files/templates/default_read_plugins.conf.j21
-rw-r--r--docker/ansible/roles/config_files/templates/uuid.conf.j220
-rw-r--r--docker/ansible/roles/config_files/vars/main.yml5
-rw-r--r--docker/ansible/roles/install_docker/tasks/centos.yml45
-rw-r--r--docker/ansible/roles/install_docker/tasks/main.yml31
-rw-r--r--docker/ansible/roles/install_docker/tasks/proxy.yml55
-rw-r--r--docker/ansible/roles/install_docker/tasks/ubuntu.yml47
-rw-r--r--docker/ansible/roles/install_docker/vars/main.yml18
-rw-r--r--docker/ansible/roles/run_grafana/vars/main.yml4
-rw-r--r--docs/release/userguide/docker.userguide.rst209
17 files changed, 525 insertions, 34 deletions
diff --git a/docker/ansible/collectd_service.yml b/docker/ansible/collectd_service.yml
index bc484d31..965ec8ee 100644
--- a/docker/ansible/collectd_service.yml
+++ b/docker/ansible/collectd_service.yml
@@ -13,18 +13,28 @@
# limitations under the License.
---
+- hosts: collectd_hosts influxdb_hosts grafana_hosts
+ become: true
+ become_user: root
+ gather_facts: true
+ roles:
+ - install_docker
+
- hosts: collectd_hosts
- remote_user: root
+ become: true
+ become_user: root
roles:
- config_files
- run_collectd
- hosts: influxdb_hosts
- remote_user: root
+ become: true
+ become_user: root
roles:
- - run_influxdb
+ - run_influxdb
- hosts: grafana_hosts
- remote_user: root
+ become: true
+ become_user: root
roles:
- - run_grafana
+ - run_grafana
diff --git a/docker/ansible/collectd_ves.yml b/docker/ansible/collectd_ves.yml
index aa3f3ffa..f6140a5f 100644
--- a/docker/ansible/collectd_ves.yml
+++ b/docker/ansible/collectd_ves.yml
@@ -13,18 +13,28 @@
# limitations under the License.
---
+- hosts: collectd_hosts kafka_hosts ves_hosts
+ become: true
+ become_user: root
+ gather_facts: true
+ roles:
+ - install_docker
+
- hosts: collectd_hosts
- remote_user: root
+ become: true
+ become_user: root
roles:
- config_files
- run_collectd
- hosts: kafka_hosts
- remote_user: root
+ become: true
+ become_user: root
roles:
- - run_kafka
+ - run_kafka
- hosts: ves_hosts
- remote_user: root
+ become: true
+ become_user: root
roles:
- - run_ves
+ - run_ves
diff --git a/docker/ansible/default.inv b/docker/ansible/default.inv
new file mode 100644
index 00000000..b3b21c35
--- /dev/null
+++ b/docker/ansible/default.inv
@@ -0,0 +1,18 @@
+[collectd_hosts]
+localhost
+
+[collectd_hosts:vars]
+install_mcelog=true
+insert_ipmi_modules=true
+
+[influxdb_hosts]
+#localhost
+
+[grafana_hosts]
+#localhost
+
+[kafka_hosts]
+#localhost
+
+[ves_hosts]
+#localhost
diff --git a/docker/ansible/roles/config_files/tasks/ipmi.yml b/docker/ansible/roles/config_files/tasks/ipmi.yml
index 5ea62c47..c7359fbf 100644
--- a/docker/ansible/roles/config_files/tasks/ipmi.yml
+++ b/docker/ansible/roles/config_files/tasks/ipmi.yml
@@ -13,14 +13,6 @@
# limitations under the License.
---
-- name: Check if /dev/ipmi0 exists
- stat:
- path: /dev/ipmi0
- register: ipmi0_exists
- ignore_errors: True
- tags:
- - ipmi
-
- name: check ipmi_devintf is loaded
shell: "lsmod | cut -d' ' -f1 | grep ipmi_devintf"
register: ipmi_devintf
@@ -35,6 +27,30 @@
tags:
- ipmi
+- name: insert ipmi module ipmi_devintf
+ command: "modprobe ipmi_devintf"
+ register: ipmi_devintf
+ ignore_errors: true
+ when: ipmi_devintf|failed and insert_ipmi_modules|default(false)|bool
+ tags:
+ - ipmi
+
+- name: insert ipmi module ipmi_si
+ command: "modprobe ipmi_si"
+ register: ipmi_devsi
+ ignore_errors: true
+ when: ipmi_devsi|failed and insert_ipmi_modules|default(false)|bool
+ tags:
+ - ipmi
+
+- name: Check if /dev/ipmi0 exists
+ stat:
+ path: /dev/ipmi0
+ register: ipmi0_exists
+ ignore_errors: true
+ tags:
+ - ipmi
+
- name: enable ipmi plugin
template:
src: ipmi.conf.j2
diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml
index 9a9cb300..4bf81f81 100644
--- a/docker/ansible/roles/config_files/tasks/main.yml
+++ b/docker/ansible/roles/config_files/tasks/main.yml
@@ -74,8 +74,8 @@
- name: enable ipmi plugin
include: ipmi.yml
+- name: enable uuid plugin
+ include: uuid.yml
+
- name: copy additional config files
include: additional_configs.yml
-
-- name: copy types.db to target
- include: types_db.yml
diff --git a/docker/ansible/roles/config_files/tasks/mcelog.yml b/docker/ansible/roles/config_files/tasks/mcelog.yml
index 9c935e3e..bab4b142 100644
--- a/docker/ansible/roles/config_files/tasks/mcelog.yml
+++ b/docker/ansible/roles/config_files/tasks/mcelog.yml
@@ -13,6 +13,23 @@
# limitations under the License.
---
+- name: install mcelog package
+ package:
+ name: mcelog
+ state: present
+ when: install_mcelog|default(false)|bool
+ tags:
+ - mcelogs
+
+- name: start mcelog daemon if not running
+ service:
+ name: mcelog
+ state: started
+ enabled: true
+ when: install_mcelog|default(false)|bool
+ tags:
+ - mcelogs
+
- name: check if mcelog running on host
shell: ps -ef | grep mcelog | grep -v grep > /dev/null
register: mcelog_running
diff --git a/docker/ansible/roles/config_files/tasks/types_db.yml b/docker/ansible/roles/config_files/tasks/uuid.yml
index 7603bdcf..25cfa128 100644
--- a/docker/ansible/roles/config_files/tasks/types_db.yml
+++ b/docker/ansible/roles/config_files/tasks/uuid.yml
@@ -13,10 +13,9 @@
# limitations under the License.
---
-- name: copy types.db to target system
- copy:
- src: types.db
- dest: "{{ typesdb_dir }}/types.db"
- ignore_errors: True
+- name: enable uuid plugin
+ template:
+ src: uuid.conf.j2
+ dest: "{{ config_file_dir }}/uuid.conf"
tags:
- - typesdb
+ - uuid
diff --git a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2
index fd941a76..48beb0be 100644
--- a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2
+++ b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2
@@ -30,6 +30,5 @@ Interval "{{ interval_value }}"
#LoadPlugin processes
#LoadPlugin swap
#LoadPlugin turbostat
-#LoadPlugin uuid
#LoadPlugin uptime
diff --git a/docker/ansible/roles/config_files/templates/uuid.conf.j2 b/docker/ansible/roles/config_files/templates/uuid.conf.j2
new file mode 100644
index 00000000..a9a84e71
--- /dev/null
+++ b/docker/ansible/roles/config_files/templates/uuid.conf.j2
@@ -0,0 +1,20 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LoadPlugin uuid
+
+#<Plugin uuid>
+# UUIDFile "/etc/uuid"
+#</Plugin>
+
diff --git a/docker/ansible/roles/config_files/vars/main.yml b/docker/ansible/roles/config_files/vars/main.yml
index 37120d86..bfa0fd68 100644
--- a/docker/ansible/roles/config_files/vars/main.yml
+++ b/docker/ansible/roles/config_files/vars/main.yml
@@ -23,7 +23,7 @@ interval_value: 10
#network plugin vars
network_port: 25826
-network_ip_addr: localhost
+network_ip_addr: "{{ (groups['influxdb_hosts']|default({}))[0] | default('localhost') }}"
#ovs event and stats plugin vars
ovs_event_interval: 1
@@ -54,6 +54,3 @@ write_per_sec: 50
#additional configuration files path
additional_configs_path: ""
-
-#directory to copy types.db file to
-typesdb_dir: "/opt/collectd/share/collectd/"
diff --git a/docker/ansible/roles/install_docker/tasks/centos.yml b/docker/ansible/roles/install_docker/tasks/centos.yml
new file mode 100644
index 00000000..b84d98f2
--- /dev/null
+++ b/docker/ansible/roles/install_docker/tasks/centos.yml
@@ -0,0 +1,45 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: install dependencies for docker
+ package:
+ name: "{{ packages }}"
+ state: present
+ vars:
+ packages:
+ - python
+ - yum-utils
+ - device-mapper-persistent-data
+ - lvm2
+
+- name: set up docker repository
+ command: "yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo"
+
+- name: install docker-py
+ package:
+ name: python-docker-py
+ state: present
+
+- name: install docker
+ package:
+ name: docker-ce
+ state: present
+
+- name: start docker daemon
+ systemd:
+ name: docker
+ daemon_reload: true
+ state: started
+ enabled: true
diff --git a/docker/ansible/roles/install_docker/tasks/main.yml b/docker/ansible/roles/install_docker/tasks/main.yml
new file mode 100644
index 00000000..7e015bbc
--- /dev/null
+++ b/docker/ansible/roles/install_docker/tasks/main.yml
@@ -0,0 +1,31 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: proxy configuration for docker
+ tags:
+ - install_docker
+ import_tasks: proxy.yml
+
+- name: install docker for ubuntu
+ tags:
+ - install_docker
+ import_tasks: ubuntu.yml
+ when: ansible_distribution == "Ubuntu"
+
+- name: install docker for centos
+ tags:
+ - install_docker
+ import_tasks: centos.yml
+ when: ansible_distribution == "CentOS"
diff --git a/docker/ansible/roles/install_docker/tasks/proxy.yml b/docker/ansible/roles/install_docker/tasks/proxy.yml
new file mode 100644
index 00000000..397bed4c
--- /dev/null
+++ b/docker/ansible/roles/install_docker/tasks/proxy.yml
@@ -0,0 +1,55 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: create docker proxy configuration file
+ tags:
+ - add_docker_proxy
+ lineinfile:
+ path: "{{ docker_proxy_conf }}"
+ line: "[Service]"
+ create: yes
+
+- name: add docker http_proxy
+ tags:
+ - add_docker_proxy
+ lineinfile:
+ path: "{{ docker_proxy_conf }}"
+ line: "Environment=\"HTTP_PROXY={{ ansible_env.http_proxy }}\""
+ when: ansible_env.http_proxy is defined
+
+- name: add docker https_proxy
+ tags:
+ - add_docker_proxy
+ lineinfile:
+ path: "{{ docker_proxy_conf }}"
+ line: "Environment=\"HTTPS_PROXY={{ ansible_env.https_proxy }}\""
+ when: ansible_env.https_proxy is defined
+
+- name: add docker ftp_proxy
+ tags:
+ - add_docker_proxy
+ lineinfile:
+ path: "{{ docker_proxy_conf }}"
+ line: "Environment=\"FTP_PROXY={{ ansible_env.ftp_proxy }}\""
+ when: ansible_env.ftp_proxy is defined
+
+- name: add docker no_proxy
+ tags:
+ - add_docker_proxy
+ lineinfile:
+ path: "{{ docker_proxy_conf }}"
+ line: "Environment=\"NO_PROXY={{ ansible_env.no_proxy }}\""
+ when: ansible_env.no_proxy is defined
+
diff --git a/docker/ansible/roles/install_docker/tasks/ubuntu.yml b/docker/ansible/roles/install_docker/tasks/ubuntu.yml
new file mode 100644
index 00000000..44156873
--- /dev/null
+++ b/docker/ansible/roles/install_docker/tasks/ubuntu.yml
@@ -0,0 +1,47 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+- name: update package manager cache
+ tags:
+ - cache_update
+ package:
+ update_cache: yes
+
+- name: install python
+ package:
+ name: python
+ state: present
+
+- name: install python-pip
+ package:
+ name: python-pip
+ state: present
+
+- name: install docker-py
+ pip:
+ name: docker-py
+ state: present
+
+- name: install docker
+ package:
+ name: docker.io
+ state: present
+
+- name: start docker daemon
+ systemd:
+ name: docker
+ daemon_reload: true
+ state: started
+ enabled: true
diff --git a/docker/ansible/roles/install_docker/vars/main.yml b/docker/ansible/roles/install_docker/vars/main.yml
new file mode 100644
index 00000000..0673a63a
--- /dev/null
+++ b/docker/ansible/roles/install_docker/vars/main.yml
@@ -0,0 +1,18 @@
+#Copyright 2018 OPNFV and Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+
+#docker proxy configuration file
+docker_proxy_conf: "/etc/systemd/system/docker.service.d/proxy.conf"
+
diff --git a/docker/ansible/roles/run_grafana/vars/main.yml b/docker/ansible/roles/run_grafana/vars/main.yml
index 0975b598..5caf45da 100644
--- a/docker/ansible/roles/run_grafana/vars/main.yml
+++ b/docker/ansible/roles/run_grafana/vars/main.yml
@@ -13,5 +13,5 @@
# limitations under the License.
---
-influxdb_hostname: localhost
-influxdb_host_ip: 127.0.0.1
+influxdb_hostname: influxdb_host
+influxdb_host_ip: "{{ (groups['influxdb_hosts']|default({}))[0] | default('localhost') }}"
diff --git a/docs/release/userguide/docker.userguide.rst b/docs/release/userguide/docker.userguide.rst
index 52f46acd..258d122d 100644
--- a/docs/release/userguide/docker.userguide.rst
+++ b/docs/release/userguide/docker.userguide.rst
@@ -94,6 +94,215 @@ Kafka recieves and stores metrics recieved from Collectd. VES application pulls
which it normalizes into VES format for sending to a VES collector. Please see details in
:ref:`VES Application User Guide <barometer-ves-userguide>`
+Download and Run Docker Images with Ansible-Playbook
+----------------------------------------------------
+
+Install Ansible
+^^^^^^^^^^^^^^^
+.. note::
+ * sudo permissions or root access are required to install ansible.
+ * ansible version needs to be 2.4+, because usage of import/include statements
+
+To install Ansible 2.6.3 on Ubuntu:
+
+.. code:: bash
+
+ $ sudo apt-get install python
+ $ sudo apt-get install python-pip
+ $ sudo pip install 'ansible==2.6.3'
+
+To install Ansible 2.6.3 on Centos:
+
+.. code:: bash
+
+ $ sudo yum install python
+ $ sudo yum install epel-release
+ $ sudo yum install python-pip
+ $ sudo pip install 'ansible==2.6.3'
+
+Clone barometer repo
+^^^^^^^^^^^^^^^^^^^^
+
+.. code:: bash
+
+ $ git clone https://gerrit.opnfv.org/gerrit/barometer
+ $ cd barometer/docker/ansible
+
+Edit inventory file
+^^^^^^^^^^^^^^^^^^^
+Edit inventory file and add hosts: ~/default.inv
+
+.. code:: bash
+
+ [collectd_hosts]
+ localhost
+
+ [collectd_hosts:vars]
+ install_mcelog=true
+ insert_ipmi_modules=true
+
+ [influxdb_hosts]
+ localhost
+
+ [grafana_hosts]
+ localhost
+
+ [kafka_hosts]
+ #localhost
+
+ [ves_hosts]
+ #localhost
+
+Change localhost to different hosts where neccessary.
+Hosts for influxdb and grafana are required only for collectd_service.yml.
+Hosts for kafka and ves are required only for collectd_ves.yml.
+
+To change host for kafka edit kafka_ip_addr in ./roles/config_files/vars/main.yml.
+
+Additional plugin dependencies
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+By default ansible will try to fulfill dependencies for mcelog and ipmi plugin.
+For mcelog plugin it installs mcelog daemon. For ipmi it tries to insert ipmi_devintf
+and ipmi_si kernel modules.
+This can be changed in inventory file with use of variables install_mcelog
+and insert_ipmi_modules, both variables are independent:
+
+.. code:: bash
+
+ [collectd_hosts:vars]
+ install_mcelog=false
+ insert_ipmi_modules=false
+
+Configure ssh keys
+^^^^^^^^^^^^^^^^^^
+
+Generate ssh keys if not present, otherwise move onto next step.
+
+.. code:: bash
+
+ $ sudo ssh-keygen
+
+Coppy ssh key to all target hosts. It requires to provide root password. The example is for localhost.
+
+.. code:: bash
+
+ $ sudo ssh-copy-id root@localhost
+
+Download collectd+influxdb+grafana containers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code:: bash
+
+ $ sudo ansible-playbook -i ~/default.inv collectd_service.yml
+
+Check the three containers are running, the output of docker ps should be similar to:
+
+.. code:: bash
+
+ $ sudo docker ps
+ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+ a033aeea180d opnfv/barometer-grafana "/run.sh" 9 days ago Up 7 minutes bar-grafana
+ 1bca2e4562ab opnfv/barometer-influxdb "/entrypoint.sh in..." 9 days ago Up 7 minutes bar-influxdb
+ daeeb68ad1d5 opnfv/barometer-collectd "/run_collectd.sh ..." 9 days ago Up 7 minutes bar-collectd
+
+To make some changes when a container is running run:
+
+.. code:: bash
+
+ $ sudo docker exec -ti <CONTAINER ID> /bin/bash
+
+Connect to <host_ip>:3000 with a browser and log into grafana: admin/admin
+
+The collectd configuration files can be accessed directly on target system in '/opt/collectd/etc/collectd.conf.d'.
+It can be used for manual changes or enable/disable plugins. If configuration has been modified it is required to
+restart collectd:
+
+.. code:: bash
+
+ $ sudo docker restart bar-collectd
+
+Download collectd+kafka+ves containers
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Before running Kafka an instance of zookeeper is required. See `Run Kafka docker image`_ for notes on how to run it.
+The 'zookeeper_hostname' and 'broker_id' can be set in ./roles/run_kafka/vars/main.yml.
+
+.. code:: bash
+
+ $ sudo ansible-playbook -i ~/default.inv collectd_ves.yml
+
+Check the three containers are running, the output of docker ps should be similar to:
+
+.. code:: bash
+
+ $ sudo docker ps
+ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+ 8b095ad94ea1 zookeeper:3.4.11 "/docker-entrypoin..." 7 minutes ago Up 7 minutes awesome_jennings
+ eb8bba3c0b76 opnfv/barometer-ves "./start_ves_app.s..." 21 minutes ago Up 6 minutes bar-ves
+ 86702a96a68c opnfv/barometer-kafka "/src/start_kafka.sh" 21 minutes ago Up 6 minutes bar-kafka
+ daeeb68ad1d5 opnfv/barometer-collectd "/run_collectd.sh ..." 13 days ago Up 6 minutes bar-collectd
+
+
+To make some changes when a container is running run:
+
+.. code:: bash
+
+ $ sudo docker exec -ti <CONTAINER ID> /bin/bash
+
+List of default plugins for collectd container
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+By default the collectd is started with default configuration which includes the followin plugins:
+ * csv, contextswitch, cpu, cpufreq, df, disk, ethstat, ipc, irq, load, memory, numa, processes,
+ swap, turbostat, uuid, uptime, exec, hugepages, intel_pmu, ipmi, write_kafka, logfile, mcelog,
+ network, intel_rdt, rrdtool, snmp_agent, syslog, virt, ovs_stats, ovs_events
+
+Some of the plugins are loaded depending on specific system requirements and can be omitted if
+dependency is not met, this is the case for:
+ * hugepages, ipmi, mcelog, intel_rdt, virt, ovs_stats, ovs_events
+
+List and description of tags used in ansible scripts
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Tags can be used to run a specific part of the configuration without running the whole playbook.
+To run a specific parts only:
+
+.. code:: bash
+
+ $ sudo ansible-playbook -i ~/default.inv collectd_service.yml --tags "syslog,cpu,uuid"
+
+To disable some parts or plugins:
+
+.. code:: bash
+
+ $ sudo ansible-playbook -i ~/default.inv collectd_service.yml --skip-tags "en_default_all,syslog,cpu,uuid"
+
+List of available tags:
+
+install_docker
+ Install docker and required dependencies with package manager.
+
+add_docker_proxy
+ Configure proxy file for docker service if proxy is set on host environment.
+
+rm_config_dir
+ Remove collectd config files.
+
+copy_additional_configs
+ Copy additional configuration files to target system. Path to additional configuration
+ is stored in $barometer_dir/docker/ansible/roles/config_files/vars/main.yml as additional_configs_path.
+
+en_default_all
+ Set of default read plugins: contextswitch, cpu, cpufreq, df, disk, ethstat, ipc, irq,
+ load, memory, numa, processes, swap, turbostat, uptime.
+
+plugins tags
+ The following tags can be used to enable/disable plugins: csv, contextswitch, cpu,
+ cpufreq, df, disk, ethstat, ipc, irq, load, memory, numa, processes, swap, turbostat,
+ uptime, exec, hugepages, ipmi, kafka, logfile, mcelogs, network, pmu, rdt, rrdtool,
+ snmp, syslog, virt, ovs_stats, ovs_events, uuid.
+
Installing Docker
-----------------
.. Describe the specific capabilities and usage for <XYZ> feature.