ansible: add roles to launch collectd, influxdb and grafana containers 75/52875/1
authorGordon Kelly <gordon.kelly@intel.com>
Wed, 28 Feb 2018 21:17:34 +0000 (21:17 +0000)
committerGordon Kelly <gordon.kelly@intel.com>
Wed, 28 Feb 2018 21:18:32 +0000 (21:18 +0000)
Change-Id: I330172a2165e51a1557f084fd85fce12dfaad3a7
Signed-off-by: Gordon Kelly <gordon.kelly@intel.com>
docker/ansible/collectd_service.yml [new file with mode: 0644]
docker/ansible/roles/run_collectd/tasks/main.yml [new file with mode: 0644]
docker/ansible/roles/run_grafana/tasks/main.yml [new file with mode: 0644]
docker/ansible/roles/run_grafana/vars/main.yml [new file with mode: 0644]
docker/ansible/roles/run_influxdb/tasks/main.yml [new file with mode: 0644]

diff --git a/docker/ansible/collectd_service.yml b/docker/ansible/collectd_service.yml
new file mode 100644 (file)
index 0000000..bc484d3
--- /dev/null
@@ -0,0 +1,30 @@
+#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.
+---
+
+- hosts: collectd_hosts
+  remote_user: root
+  roles:
+      - config_files
+      - run_collectd
+
+- hosts: influxdb_hosts
+  remote_user: root
+  roles:
+    - run_influxdb
+
+- hosts: grafana_hosts
+  remote_user: root
+  roles:
+    - run_grafana
diff --git a/docker/ansible/roles/run_collectd/tasks/main.yml b/docker/ansible/roles/run_collectd/tasks/main.yml
new file mode 100644 (file)
index 0000000..c77aad5
--- /dev/null
@@ -0,0 +1,48 @@
+#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: remove bar-collectd container
+  docker_container:
+    name: bar-collectd
+    state: absent
+  tags:
+    - rm_containers
+    - rm_collectd_cont
+  when: rm_containers|default(false)|bool == true
+
+- name: Remove bar-collectd image
+  docker_image:
+    name: opnfv/barometer-collectd
+    state: absent
+  tags:
+    - rm_images
+    - rm_collectd_image
+  when: rm_images|default(false)|bool == true
+
+- name: launch collectd container
+  docker_container:
+    name: bar-collectd
+    image: opnfv/barometer-collectd
+    volumes:
+       - /opt/collectd/etc/collectd.conf.d/:/opt/collectd/etc/collectd.conf.d
+       - /var/run:/var/run
+       - /tmp:/tmp
+       - /var/lib/collectd:/var/lib/collectd
+    command: "/run_collectd.sh"
+    detach: yes
+    state: started
+    restart: yes
+    privileged: yes
+    network_mode: host
diff --git a/docker/ansible/roles/run_grafana/tasks/main.yml b/docker/ansible/roles/run_grafana/tasks/main.yml
new file mode 100644 (file)
index 0000000..9701249
--- /dev/null
@@ -0,0 +1,48 @@
+#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: remove bar-grafana container
+  docker_container:
+    name: bar-grafana
+    state: absent
+  tags:
+    - rm_containers
+    - rm_grafana_cont
+  when: rm_containers|default(false)|bool == true
+
+- name: Remove barometer-grafana image
+  docker_image:
+    state: absent
+    name: opnfv/barometer-grafana
+  tags:
+    - rm_images
+    - rm_grafana_image
+  when: rm_images|default(false)|bool == true
+
+- name: launch barometer-grafana container
+  docker_container:
+    name: bar-grafana
+    image: opnfv/barometer-grafana
+    volumes:
+       - /var/lib/grafana:/var/lib/grafana
+    ports:
+       - 3000:3000
+    env:
+      "{{ influxdb_host }}": "{{ influxdb_hostname }}"
+    etc_hosts:
+      "{{ influxdb_hostname }}": "{{ influxdb_host_ip }}"
+    detach: yes
+    restart: yes
+    network_mode: host
diff --git a/docker/ansible/roles/run_grafana/vars/main.yml b/docker/ansible/roles/run_grafana/vars/main.yml
new file mode 100644 (file)
index 0000000..0975b59
--- /dev/null
@@ -0,0 +1,17 @@
+#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.
+---
+
+influxdb_hostname: localhost
+influxdb_host_ip: 127.0.0.1
diff --git a/docker/ansible/roles/run_influxdb/tasks/main.yml b/docker/ansible/roles/run_influxdb/tasks/main.yml
new file mode 100644 (file)
index 0000000..53187fa
--- /dev/null
@@ -0,0 +1,48 @@
+#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: remove bar-influxdb container
+  docker_container:
+    name: bar-influxdb
+    state: absent
+  tags:
+    - rm_containers
+    - rm_influxdb_cont
+  when: rm_containers|default(false)|bool == true
+
+- name: Remove opnfv/barometer-influxdb image
+  docker_image:
+    name: opnfv/barometer-influxdb
+    state: absent
+  tags:
+    - rm_images
+    - rm_influxdb_cont
+  when: rm_images|default(false)|bool == true
+
+- name: launch barometer-influxdb container
+  docker_container:
+    name: bar-influxdb
+    image: opnfv/barometer-influxdb
+    volumes:
+       - /var/lib/influxdb:/var/lib/influxdb
+    exposed:
+     - 8086
+     - 25826
+    ports:
+       - 8086:8086
+       - 25826:25826
+    detach: yes
+    restart: yes
+    network_mode: host