diff options
Diffstat (limited to 'tools/lma/ansible-client')
-rw-r--r-- | tools/lma/ansible-client/ansible.cfg | 17 | ||||
-rw-r--r-- | tools/lma/ansible-client/hosts | 2 | ||||
-rw-r--r-- | tools/lma/ansible-client/playbooks/clean.yaml | 25 | ||||
-rw-r--r-- | tools/lma/ansible-client/roles/clean-collectd/main.yml | 44 | ||||
-rw-r--r-- | tools/lma/ansible-client/roles/collectd/files/collectd.conf.j2 | 44 | ||||
-rw-r--r-- | tools/lma/ansible-client/roles/collectd/tasks/main.yml | 60 |
6 files changed, 192 insertions, 0 deletions
diff --git a/tools/lma/ansible-client/ansible.cfg b/tools/lma/ansible-client/ansible.cfg new file mode 100644 index 00000000..307ef457 --- /dev/null +++ b/tools/lma/ansible-client/ansible.cfg @@ -0,0 +1,17 @@ +[defaults] +inventory = ./hosts +host_key_checking = false + +# additional path to search for roles in +roles_path = roles + +# enable logging +log_path = ./ansible.log + +[privilege_escalation] +become=True +become_method=sudo +become_user=root + +[ssh_connection] +pipelining = True diff --git a/tools/lma/ansible-client/hosts b/tools/lma/ansible-client/hosts new file mode 100644 index 00000000..eba586ce --- /dev/null +++ b/tools/lma/ansible-client/hosts @@ -0,0 +1,2 @@ +[all] +127.0.0.1 ansible_connection=local diff --git a/tools/lma/ansible-client/playbooks/clean.yaml b/tools/lma/ansible-client/playbooks/clean.yaml new file mode 100644 index 00000000..4f77b062 --- /dev/null +++ b/tools/lma/ansible-client/playbooks/clean.yaml @@ -0,0 +1,25 @@ +# Copyright 2020 Adarsh yadav, Aditya Srivastava +# +# 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. + +#clean td-agent +- name: clean td-agent + hosts: all + roles: + - clean-td-agent + +#clean collectd +- name: clean collectd + hosts: all + roles: + - clean-collectd diff --git a/tools/lma/ansible-client/roles/clean-collectd/main.yml b/tools/lma/ansible-client/roles/clean-collectd/main.yml new file mode 100644 index 00000000..97100cad --- /dev/null +++ b/tools/lma/ansible-client/roles/clean-collectd/main.yml @@ -0,0 +1,44 @@ +# Copyright 2020 Aditya Srivastava +# +# 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. + +--- +- hosts: localhost + + tasks: + - name: Check and install dependencies + yum: + name: docker + state: present + + - name: Install python sdk + yum: + name: python-docker-py + state: present + + - name: Stopping collectd container + docker_container: + name: collectd + state: stopped + + - name: Removing collectd container + docker_container: + name: collectd + state: absent + + # Removes the image (not recommended) + # - name: Remove image + # docker_image: + # state: absent + # name: opnfv/barometer-collectd + # tag: latest diff --git a/tools/lma/ansible-client/roles/collectd/files/collectd.conf.j2 b/tools/lma/ansible-client/roles/collectd/files/collectd.conf.j2 new file mode 100644 index 00000000..ba953e3a --- /dev/null +++ b/tools/lma/ansible-client/roles/collectd/files/collectd.conf.j2 @@ -0,0 +1,44 @@ +Hostname "{{ host_name }}" +Interval 10 +LoadPlugin intel_rdt +LoadPlugin processes +LoadPlugin interface +LoadPlugin network +LoadPlugin ovs_stats +LoadPlugin cpu +LoadPlugin memory +#LoadPlugin csv +#LoadPlugin write_http +#LoadPlugin dpdkstat +############################################################################## +# Plugin configuration # +############################################################################## +<Plugin processes> + ProcessMatch "ovs-vswitchd" "ovs-vswitchd" + ProcessMatch "ovsdb-server" "ovsdb-server" + ProcessMatch "collectd" "collectd" +</Plugin> + +<Plugin cpu> + ReportByCpu true + ReportByState true + ValuesPercentage true + ReportNumCpu true + ReportGuestState false + SubtractGuestState false +</Plugin> + +<Plugin network> + Server "10.10.120.211" "30826" +</Plugin> + +<Plugin ovs_stats> + Port "6640" + Address "127.0.0.1" + Socket "/usr/local/var/run/openvswitch/db.sock" + Bridges "vsperf-br0" +</Plugin> + +<Plugin "intel_rdt"> + Cores "2" "4-5" "6-7" "8" "9" "22" "23" "24" "25" "26" "27" +</Plugin> diff --git a/tools/lma/ansible-client/roles/collectd/tasks/main.yml b/tools/lma/ansible-client/roles/collectd/tasks/main.yml new file mode 100644 index 00000000..0befb22b --- /dev/null +++ b/tools/lma/ansible-client/roles/collectd/tasks/main.yml @@ -0,0 +1,60 @@ +# Copyright 2020 Aditya Srivastava +# +# 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. + +--- + +# Dependency check +- name: Check and install dependencies + yum: + name: ['docker', 'python-docker-py'] + state: present + +- name: Install pip + yum: + name: python-pip + state: present + +- name: install docker-py + pip: name=docker-py + +- name: Cloning barometer + git: + repo: https://gerrit.opnfv.org/gerrit/barometer + dest: /tmp/barometer + +- name: Create Folder + file: + path: /tmp/barometer/docker/src/collectd_sample_configs + state: directory + +# Build collectd +- name: Downlaod and Build Image + command: chdir=/tmp/ {{ item }} + become: true + with_items: + - docker build -t opnfv/barometer-collectd -f barometer/docker/barometer-collectd/Dockerfile barometer/docker/barometer-collectd + +# Configuring collectd0 +- name: Ensure collectd is configured + template: + src: ../files/collectd.conf.j2 + dest: /tmp/barometer/docker/src/collectd_sample_configs/collectd.conf + +# Running Collectd container ##################### +- name: Running collectd + command : chdir=/tmp/ {{ item }} + become: true + with_items: + - docker run -tid --name collectd --net=host -v /tmp/barometer/docker/src/collectd_sample_configs:/opt/collectd/etc/collectd.conf.d -v /var/run:/var/run -v /tmp:/tmp --privileged opnfv/barometer-collectd /run_collectd.sh + - docker ps |