mirror of
https://github.com/dj-wasabi/ansible-telegraf.git
synced 2025-07-17 08:46:37 +00:00
Removed Travis Test; Update travis build; Added Molecule tests; Updated default installation version
This commit is contained in:
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,4 +1,7 @@
|
|||||||
.kitchen/
|
.idea
|
||||||
.kitchen.local.yml
|
.molecule
|
||||||
.idea/
|
tests/.cache
|
||||||
|
.cache
|
||||||
|
__pycache__
|
||||||
|
*.retry
|
||||||
pmip
|
pmip
|
||||||
|
22
.kitchen.yml
22
.kitchen.yml
@ -1,22 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
provision_command: sed -i '/tsflags=nodocs/d' /etc/yum.conf
|
|
||||||
|
|
||||||
provisioner:
|
|
||||||
name: ansible_playbook
|
|
||||||
ansible_yum_repo: "http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm"
|
|
||||||
hosts: localhost
|
|
||||||
require_chef_for_busser: false
|
|
||||||
require_ruby_for_busser: true
|
|
||||||
|
|
||||||
platforms:
|
|
||||||
- name: centos-6.7
|
|
||||||
|
|
||||||
verifier:
|
|
||||||
ruby_bindir: '/usr/bin'
|
|
||||||
|
|
||||||
suites:
|
|
||||||
- name: default
|
|
||||||
run_list:
|
|
||||||
attributes:
|
|
18
.travis.yml
18
.travis.yml
@ -1,15 +1,17 @@
|
|||||||
---
|
---
|
||||||
|
sudo: required
|
||||||
language: python
|
language: python
|
||||||
python: "2.7"
|
services:
|
||||||
|
- docker
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- sudo apt-get update -qq
|
- sudo apt-get -qq update
|
||||||
- sudo apt-get install -qq python-apt python-pycurl
|
- sudo apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y docker-engine
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- pip install ansible==1.9.4
|
- pip install molecule
|
||||||
- echo -e 'localhost ansible_connection=local' > test/inventory
|
|
||||||
- echo -e '[defaults]\nroles_path = ../\nhostfile = ./test/inventory' > ansible.cfg
|
|
||||||
script:
|
script:
|
||||||
- ansible-playbook test/integration/default.yml --syntax-check
|
- molecule test
|
||||||
- ansible-playbook test/integration/default.yml --connection=local --sudo
|
|
||||||
notifications:
|
notifications:
|
||||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||||
|
5
Gemfile
5
Gemfile
@ -1,5 +0,0 @@
|
|||||||
source "https://rubygems.org"
|
|
||||||
|
|
||||||
gem "test-kitchen"
|
|
||||||
gem "kitchen-docker"
|
|
||||||
gem "kitchen-ansible"
|
|
41
Gemfile.lock
41
Gemfile.lock
@ -1,41 +0,0 @@
|
|||||||
GEM
|
|
||||||
remote: https://rubygems.org/
|
|
||||||
specs:
|
|
||||||
faraday (0.9.2)
|
|
||||||
multipart-post (>= 1.2, < 3)
|
|
||||||
highline (1.7.8)
|
|
||||||
kitchen-ansible (0.0.30)
|
|
||||||
librarian-ansible
|
|
||||||
test-kitchen
|
|
||||||
kitchen-docker (2.3.0)
|
|
||||||
test-kitchen (>= 1.0.0)
|
|
||||||
librarian (0.1.2)
|
|
||||||
highline
|
|
||||||
thor (~> 0.15)
|
|
||||||
librarian-ansible (1.0.6)
|
|
||||||
faraday
|
|
||||||
librarian (~> 0.1.0)
|
|
||||||
mixlib-shellout (2.2.3)
|
|
||||||
multipart-post (2.0.0)
|
|
||||||
net-scp (1.2.1)
|
|
||||||
net-ssh (>= 2.6.5)
|
|
||||||
net-ssh (2.9.2)
|
|
||||||
safe_yaml (1.0.4)
|
|
||||||
test-kitchen (1.4.2)
|
|
||||||
mixlib-shellout (>= 1.2, < 3.0)
|
|
||||||
net-scp (~> 1.1)
|
|
||||||
net-ssh (~> 2.7, < 2.10)
|
|
||||||
safe_yaml (~> 1.0)
|
|
||||||
thor (~> 0.18)
|
|
||||||
thor (0.19.1)
|
|
||||||
|
|
||||||
PLATFORMS
|
|
||||||
ruby
|
|
||||||
|
|
||||||
DEPENDENCIES
|
|
||||||
kitchen-ansible
|
|
||||||
kitchen-docker
|
|
||||||
test-kitchen
|
|
||||||
|
|
||||||
BUNDLED WITH
|
|
||||||
1.10.6
|
|
11
README.md
11
README.md
@ -23,7 +23,9 @@ Role Variables
|
|||||||
|
|
||||||
The following parameters can be set for the Telegraf agent:
|
The following parameters can be set for the Telegraf agent:
|
||||||
|
|
||||||
* `telegraf_agent_version`: The version of Telegraf to install. Default: `0.10.0`
|
* `telegraf_agent_version`: The version of Telegraf to install. Default: `1.0.0`
|
||||||
|
* `telegraf_agent_rpm_url`: The full path to the RPM file located on a webserver.
|
||||||
|
* `telegraf_agent_deb_url`: The full path to the DEB file located on a webserver.
|
||||||
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
|
* `telegraf_agent_interval`: The interval configured for sending data to the server. Default: `10`
|
||||||
* `telegraf_agent_debug`: Setting the Telegraf in debug mode. Default: `False`
|
* `telegraf_agent_debug`: Setting the Telegraf in debug mode. Default: `False`
|
||||||
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
|
* `telegraf_agent_round_interval`: Rounds collection interval to 'interval' Default: True
|
||||||
@ -114,12 +116,11 @@ Example Playbook
|
|||||||
The following have contributed to this Ansible role:
|
The following have contributed to this Ansible role:
|
||||||
|
|
||||||
* aferrari-technisys
|
* aferrari-technisys
|
||||||
|
* stvnwrgs
|
||||||
|
|
||||||
|
# Molecule
|
||||||
|
|
||||||
Test Kitchen
|
This roles is configured to be tested with Molecule. You can find on this page some more information regarding Molecule: https://werner-dijkerman.nl/2016/07/10/testing-ansible-roles-with-molecule-testinfra-and-docker/
|
||||||
------------
|
|
||||||
|
|
||||||
This roles is configured to be tested with Test Kitchen. You can find on this page some more information regarding Test Kitchen: http://werner-dijkerman.nl/2015/08/20/using-test-kitchen-with-docker-and-serverspec-to-test-ansible-roles/
|
|
||||||
|
|
||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
---
|
---
|
||||||
# defaults file for ansible-telegraf
|
# defaults file for ansible-telegraf
|
||||||
|
|
||||||
telegraf_agent_version: 0.10.1
|
#telegraf_agent_version: 0.10.1
|
||||||
|
telegraf_agent_version: 1.0.0
|
||||||
|
telegraf_agent_version_sub_l: _beta2
|
||||||
|
telegraf_agent_version_sub_u: -beta2
|
||||||
telegraf_agent_interval: 10
|
telegraf_agent_interval: 10
|
||||||
telegraf_agent_debug: False
|
telegraf_agent_debug: False
|
||||||
telegraf_agent_round_interval: True
|
telegraf_agent_round_interval: True
|
||||||
telegraf_agent_flush_interval: 10
|
telegraf_agent_flush_interval: 10
|
||||||
telegraf_agent_flush_jitter: 0
|
telegraf_agent_flush_jitter: 0
|
||||||
|
|
||||||
|
telegraf_agent_rpm_url: https://dl.influxdata.com/telegraf/releases/telegraf-{{ telegraf_agent_version }}{{ telegraf_agent_version_sub_l }}.x86_64.rpm
|
||||||
|
telegraf_agent_deb_url: https://dl.influxdata.com/telegraf/releases/telegraf_{{ telegraf_agent_version }}{{ telegraf_agent_version_sub_u }}_amd64.deb
|
||||||
|
|
||||||
telegraf_agent_tags:
|
telegraf_agent_tags:
|
||||||
|
|
||||||
telegraf_agent_output:
|
telegraf_agent_output:
|
||||||
|
18
molecule.yml
Normal file
18
molecule.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
ansible:
|
||||||
|
playbook: playbook.yml
|
||||||
|
|
||||||
|
docker:
|
||||||
|
containers:
|
||||||
|
- name: telegraf-centos
|
||||||
|
ansible_groups:
|
||||||
|
- group1
|
||||||
|
image: milcom/centos7-systemd
|
||||||
|
image_version: latest
|
||||||
|
privileged: True
|
||||||
|
- name: telegraf-debian
|
||||||
|
ansible_groups:
|
||||||
|
- group2
|
||||||
|
image: maint/debian-systemd
|
||||||
|
image_version: latest
|
||||||
|
privileged: True
|
15
playbook.yml
Normal file
15
playbook.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
pre_tasks:
|
||||||
|
- name: "Installing which on CentOS"
|
||||||
|
action: yum
|
||||||
|
name=which
|
||||||
|
state=installed
|
||||||
|
when: ansible_distribution == 'CentOS'
|
||||||
|
- name: "Installing wget on Debian"
|
||||||
|
action: apt
|
||||||
|
name=wget
|
||||||
|
state=installed
|
||||||
|
when: ansible_distribution == 'Debian'
|
||||||
|
roles:
|
||||||
|
- role: ansible-telegraf
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
- name: "Fetch telegraf installation package | Debian"
|
- name: "Fetch telegraf installation package | Debian"
|
||||||
action: get_url
|
action: get_url
|
||||||
url=http://get.influxdb.org/telegraf/telegraf_{{ telegraf_agent_version }}-1_amd64.deb
|
url={{ telegraf_agent_deb_url }}
|
||||||
dest=/tmp/telegraf_{{ telegraf_agent_version }}-1_amd64.deb
|
dest=/tmp/telegraf_{{ telegraf_agent_version }}-1_amd64.deb
|
||||||
mode=0440
|
mode=0440
|
||||||
|
|
||||||
|
@ -1,14 +1,38 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
- name: "Enable EPEL"
|
||||||
|
action: yum
|
||||||
|
name=epel-release
|
||||||
|
state=installed
|
||||||
|
|
||||||
|
- name: "Installing some dependencies"
|
||||||
|
action: yum
|
||||||
|
name={{ item }}
|
||||||
|
state=installed
|
||||||
|
with_items:
|
||||||
|
- python-pip
|
||||||
|
- python-devel
|
||||||
|
- gcc
|
||||||
|
- libffi-devel
|
||||||
|
- openssl-devel
|
||||||
|
|
||||||
|
- name: "Installing PIP dependensies"
|
||||||
|
action: pip
|
||||||
|
name={{ item }}
|
||||||
|
state=present
|
||||||
|
with_items:
|
||||||
|
- urllib3
|
||||||
|
- pyopenssl
|
||||||
|
- ndg-httpsclient
|
||||||
|
|
||||||
- name: "Fetch telegraf installation package | RedHat"
|
- name: "Fetch telegraf installation package | RedHat"
|
||||||
action: get_url
|
action: get_url
|
||||||
url=http://get.influxdb.org/telegraf/telegraf-{{ telegraf_agent_version }}-1.x86_64.rpm
|
url="{{ telegraf_agent_rpm_url }}"
|
||||||
dest=/tmp/telegraf_{{ telegraf_agent_version }}-1.x86_64.rpm
|
dest=/tmp/telegraf_{{ telegraf_agent_version }}.x86_64.rpm
|
||||||
mode=0440
|
mode=0440
|
||||||
|
|
||||||
- name: "Install telegraf package | RedHat"
|
- name: "Install telegraf package | RedHat"
|
||||||
action: yum
|
action: yum
|
||||||
name=/tmp/telegraf_{{ telegraf_agent_version }}-1.x86_64.rpm
|
name=/tmp/telegraf_{{ telegraf_agent_version }}.x86_64.rpm
|
||||||
state=installed
|
state=installed
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
sudo: yes
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
dest: /etc/opt/telegraf/telegraf.conf
|
dest: /etc/opt/telegraf/telegraf.conf
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 644
|
mode: 0644
|
||||||
when: telegraf_ver < 100
|
when: telegraf_ver < 100
|
||||||
sudo: yes
|
sudo: yes
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
@ -30,7 +30,7 @@
|
|||||||
dest: /etc/telegraf/telegraf.conf
|
dest: /etc/telegraf/telegraf.conf
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 644
|
mode: 0644
|
||||||
when: telegraf_ver >= 100
|
when: telegraf_ver >= 100
|
||||||
sudo: yes
|
sudo: yes
|
||||||
notify: "Restart Telegraf"
|
notify: "Restart Telegraf"
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
---
|
|
||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- role: ansible-telegraf
|
|
@ -1,27 +0,0 @@
|
|||||||
require 'serverspec'
|
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe 'Telegraf Packages' do
|
|
||||||
describe package('telegraf') do
|
|
||||||
it { should be_installed }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
describe 'Telegraf Services' do
|
|
||||||
describe service('telegraf') do
|
|
||||||
it { should be_enabled }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'Telegraf Configuration' do
|
|
||||||
describe file('/etc/telegraf/telegraf.conf') do
|
|
||||||
it { should be_file}
|
|
||||||
it { should be_owned_by 'root'}
|
|
||||||
it { should be_grouped_into 'root'}
|
|
||||||
|
|
||||||
it { should contain "[[inputs.cpu]]" }
|
|
||||||
it { should contain "[[inputs.mem]]" }
|
|
||||||
it { should contain "urls = [\"http://localhost:8086\"]" }
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,2 +0,0 @@
|
|||||||
require 'serverspec'
|
|
||||||
set :backend, :exec
|
|
6
tests/inventory
Normal file
6
tests/inventory
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
localhost
|
||||||
|
[group1]
|
||||||
|
telegraf-centos
|
||||||
|
|
||||||
|
[group2]
|
||||||
|
telegraf-debian
|
5
tests/test.yml
Normal file
5
tests/test.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
remote_user: root
|
||||||
|
roles:
|
||||||
|
- ansible-zabbix-agent
|
19
tests/test_docker.py
Normal file
19
tests/test_docker.py
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
def test_telegraf_running_and_enabled(Service, SystemInfo):
|
||||||
|
telegraf = Service("telegraf")
|
||||||
|
assert telegraf.is_enabled
|
||||||
|
if SystemInfo.distribution == 'centos':
|
||||||
|
assert telegraf.is_running
|
||||||
|
|
||||||
|
|
||||||
|
def test_telegraf_dot_conf(File):
|
||||||
|
telegraf = File("/etc/telegraf/telegraf.conf")
|
||||||
|
assert telegraf.user == "root"
|
||||||
|
assert telegraf.group == "root"
|
||||||
|
assert telegraf.mode == 0o644
|
||||||
|
assert telegraf.contains('[[inputs.cpu]]')
|
||||||
|
|
||||||
|
|
||||||
|
def test_telegraf_package(Package, SystemInfo):
|
||||||
|
telegraf = Package('telegraf')
|
||||||
|
assert telegraf.is_installed
|
@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
# vars file for .
|
|
Reference in New Issue
Block a user