diff options
7 files changed, 155 insertions, 5 deletions
diff --git a/docker/ansible/roles/config_files/tasks/dpdk.yml b/docker/ansible/roles/config_files/tasks/dpdk.yml new file mode 100644 index 00000000..7809c56a --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/dpdk.yml @@ -0,0 +1,28 @@ +#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: enable dpdkstat plugin + template: + src: dpdkstat.conf.j2 + dest: "{{ config_file_dir }}/dpdkstat.conf" + tags: + - dpdkstat + +- name: enable dpdkevents plugin + template: + src: dpdkevents.conf.j2 + dest: "{{ config_file_dir }}/dpdkevents.conf" + tags: + - dpdkevents diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml index 9ba9cbb2..1bf66985 100644 --- a/docker/ansible/roles/config_files/tasks/main.yml +++ b/docker/ansible/roles/config_files/tasks/main.yml @@ -35,6 +35,9 @@ - name: enable default plugins import_tasks: default_read_plugins.yml +- name: enable dpdk plugins + import_tasks: dpdk.yml + - name: enable exec plugin import_tasks: exec.yml diff --git a/docker/ansible/roles/config_files/tasks/make_mcelog.yml b/docker/ansible/roles/config_files/tasks/make_mcelog.yml new file mode 100644 index 00000000..d05b9433 --- /dev/null +++ b/docker/ansible/roles/config_files/tasks/make_mcelog.yml @@ -0,0 +1,35 @@ +#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: extract mcelog from online archive + unarchive: + src: https://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git/snapshot/mcelog-161.tar.gz + dest: /tmp + remote_src: yes + +- name: make mcelog + make: + chdir: /tmp/mcelog-161 + +- name: make install mcelog + make: + chdir: /tmp/mcelog-161 + target: install + +- name: copy mcelog service + copy: + src: /tmp/mcelog-161/mcelog.service + dest: /etc/systemd/system/mcelog.service + remote_src: yes diff --git a/docker/ansible/roles/config_files/tasks/mcelog.yml b/docker/ansible/roles/config_files/tasks/mcelog.yml index 794db98c..be185092 100644 --- a/docker/ansible/roles/config_files/tasks/mcelog.yml +++ b/docker/ansible/roles/config_files/tasks/mcelog.yml @@ -22,6 +22,20 @@ tags: - mcelogs +- name: check if mcelog present + shell: which mcelog > /dev/null + register: mcelog_present + ignore_errors: "true" + when: install_mcelog|default(false)|bool + tags: + - mcelogs + +- name: build mcelog from sources if not in package + import_tasks: make_mcelog.yml + when: mcelog_present|failed and install_mcelog|default(false)|bool + tags: + - mcelogs + - name: start mcelog daemon if not running service: name: mcelog diff --git a/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2 b/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2 new file mode 100644 index 00000000..60bdb3e2 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2 @@ -0,0 +1,36 @@ +#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 dpdkevents> + Interval 1 +</LoadPlugin> + +<Plugin "dpdkevents"> +# <EAL> +# Coremask "0x1" +# MemoryChannels "4" +# FilePrefix "rte" +# </EAL> + <Event "link_status"> + SendEventsOnUpdate false + EnabledPortMask 0xffff + SendNotification true + </Event> +# <Event "keep_alive"> +# SendEventsOnUpdate false +# LCoreMask "0xf" +# KeepAliveShmName "/dpdk_keepalive_shm_name" +# SendNotification true +# </Event> +</Plugin> diff --git a/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2 b/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2 new file mode 100644 index 00000000..738fb4d0 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2 @@ -0,0 +1,25 @@ +#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 dpdkstat + +<Plugin dpdkstat> +# Coremask "0xf" +# ProcessType "secondary" +# FilePrefix "rte" + EnabledPortMask 0xffff +# PortName "interface1" +# PortName "interface2" +</Plugin> + diff --git a/docs/release/userguide/docker.userguide.rst b/docs/release/userguide/docker.userguide.rst index 2b559f8f..6064de22 100644 --- a/docs/release/userguide/docker.userguide.rst +++ b/docs/release/userguide/docker.userguide.rst @@ -170,7 +170,7 @@ To install Ansible 2.6.3 on Ubuntu: $ sudo apt-get install python $ sudo apt-get install python-pip - $ sudo pip install 'ansible==2.6.3' + $ sudo -H pip install 'ansible==2.6.3' The following steps have been verified with Ansible 2.6.3 on Centos 7.5. To install Ansible 2.6.3 on Centos: @@ -180,7 +180,13 @@ To install Ansible 2.6.3 on Centos: $ sudo yum install python $ sudo yum install epel-release $ sudo yum install python-pip - $ sudo pip install 'ansible==2.6.3' + $ sudo -H pip install 'ansible==2.6.3' + +.. note:: + When using multi-node-setup, please make sure that 'python' package is + installed on all of the target nodes (ansible during 'Gathering facts' + phase is using python2 and it may not be installed by default on some + distributions - e.g. on Ubuntu 16.04 it has to be installed manually) Clone barometer repo ^^^^^^^^^^^^^^^^^^^^ @@ -282,7 +288,7 @@ through more details. .. code:: bash - $ sudo ansible-playbook -i default.inv collectd_service.yml + $ sudo -H ansible-playbook -i default.inv collectd_service.yml Check the three containers are running, the output of docker ps should be similar to: @@ -342,11 +348,14 @@ To make some changes when a container is running run: List of default plugins for collectd container ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. note:: + The dpdk plugins dpdkevents and dpdkstat were tested with DPDK v16.11. 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 + network, intel_rdt, rrdtool, snmp_agent, syslog, virt, ovs_stats, ovs_events, dpdkevents, + dpdkstat 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: @@ -391,7 +400,7 @@ 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. + snmp, syslog, virt, ovs_stats, ovs_events, uuid, dpdkevents, dpdkstat. Installing Docker ----------------- |