From cb3381e9138cd43bda867e374c9c0e6513cbe5db Mon Sep 17 00:00:00 2001 From: Tobias Bauriedel Date: Thu, 28 Dec 2023 21:20:34 +0100 Subject: [PATCH 1/2] Add repos role --- .gitignore | 1 + README.md | 17 +++++++++++++++-- Vagrantfile | 20 ++++++++++++++++++++ roles/repos/defaults/main.yml | 2 ++ roles/repos/tasks/Debian.yml | 10 ++++++++++ roles/repos/tasks/RedHat.yml | 12 ++++++++++++ roles/repos/tasks/main.yml | 13 +++++++++++++ roles/repos/vars/Debian.yml | 2 ++ roles/repos/vars/RedHat.yml | 2 ++ roles/repos/vars/default.yml | 2 ++ vagrant-tests.yml | 6 ++++++ 11 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Vagrantfile create mode 100644 roles/repos/defaults/main.yml create mode 100644 roles/repos/tasks/Debian.yml create mode 100644 roles/repos/tasks/RedHat.yml create mode 100644 roles/repos/tasks/main.yml create mode 100644 roles/repos/vars/Debian.yml create mode 100644 roles/repos/vars/RedHat.yml create mode 100644 roles/repos/vars/default.yml create mode 100644 vagrant-tests.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..44495a8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.vagrant \ No newline at end of file diff --git a/README.md b/README.md index fbb4069..f1ad83a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,18 @@ -> **Note:** Work in progress +> **Note:** Collection is work in progress # ansible-collection-influxdb -Install and configure InfluxDB \ No newline at end of file +Collection to manage InfluxDB repository and setup. + +It was created with the aim of refreshing my Ansible knowledge and getting in touch with Collections. Any hints for improvements are therefore welcome. + +## Supported systems +| Distribution | Tested on | +|--------------|-----------| +| Ubuntu | 22.04 | +| Centos | 9 Stream | + +## Roles + +* repos +* influxdb (TODO) diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..549519f --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,20 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : +# you're doing. +Vagrant.configure("2") do |config| + config.vm.define "ubuntu" do |ubuntu| + ubuntu.vm.hostname = "influxdb-ubuntu" + ubuntu.vm.box = "bento/ubuntu-22.04" + ubuntu.vm.provision "ansible" do |ansible| + ansible.playbook = "vagrant-tests.yml" + end + end + + config.vm.define "centos" do |centos| + centos.vm.hostname = "influxdb-centos" + centos.vm.box = "eurolinux-vagrant/centos-stream-9" + centos.vm.provision "ansible" do |ansible| + ansible.playbook = "vagrant-tests.yml" + end + end +end \ No newline at end of file diff --git a/roles/repos/defaults/main.yml b/roles/repos/defaults/main.yml new file mode 100644 index 0000000..16be132 --- /dev/null +++ b/roles/repos/defaults/main.yml @@ -0,0 +1,2 @@ +--- +influxdb_repo_key_url: https://repos.influxdata.com/influxdata-archive.key diff --git a/roles/repos/tasks/Debian.yml b/roles/repos/tasks/Debian.yml new file mode 100644 index 0000000..f1a7969 --- /dev/null +++ b/roles/repos/tasks/Debian.yml @@ -0,0 +1,10 @@ +--- +- name: apt - Add repositiory key + ansible.builtin.apt_key: + state: present + url: "{{ influxdb_repo_key_url }}" + +- name: apt - Add repository to list + ansible.builtin.apt_repository: + repo: "{{ influxdb_repo_stable }}" + state: present diff --git a/roles/repos/tasks/RedHat.yml b/roles/repos/tasks/RedHat.yml new file mode 100644 index 0000000..b426ffc --- /dev/null +++ b/roles/repos/tasks/RedHat.yml @@ -0,0 +1,12 @@ +--- +- name: yum - Add repositiory key + ansible.builtin.rpm_key: + state: present + key: "{{ influxdb_repo_key_url }}" + +- name: yum - Add repository to list + ansible.builtin.yum_repository: + state: present + name: influxdb + description: Stable InfluxDB repository + baseurl: "{{ influxdb_repo_stable_baseurl }}" diff --git a/roles/repos/tasks/main.yml b/roles/repos/tasks/main.yml new file mode 100644 index 0000000..c6f45ba --- /dev/null +++ b/roles/repos/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Include OS specific vars + ansible.builtin.include_vars: "{{ lookup('first_found', params) }}" + vars: + params: + files: + - "{{ ansible_os_family }}.yml" + - default.yml + paths: + - "{{ role_path }}/vars" + +- name: Add repositories + ansible.builtin.include_tasks: "{{ ansible_os_family }}.yml" diff --git a/roles/repos/vars/Debian.yml b/roles/repos/vars/Debian.yml new file mode 100644 index 0000000..010d6b8 --- /dev/null +++ b/roles/repos/vars/Debian.yml @@ -0,0 +1,2 @@ +--- +influxdb_repo_stable: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release|lower }} stable" \ No newline at end of file diff --git a/roles/repos/vars/RedHat.yml b/roles/repos/vars/RedHat.yml new file mode 100644 index 0000000..be6bf6b --- /dev/null +++ b/roles/repos/vars/RedHat.yml @@ -0,0 +1,2 @@ +--- +influxdb_repo_stable_baseurl: "https://repos.influxdata.com/rhel/$releasever/$basearch/stable" diff --git a/roles/repos/vars/default.yml b/roles/repos/vars/default.yml new file mode 100644 index 0000000..f330686 --- /dev/null +++ b/roles/repos/vars/default.yml @@ -0,0 +1,2 @@ +--- +# default variables for influxdb.repos \ No newline at end of file diff --git a/vagrant-tests.yml b/vagrant-tests.yml new file mode 100644 index 0000000..56c70bb --- /dev/null +++ b/vagrant-tests.yml @@ -0,0 +1,6 @@ +--- +- hosts: all + become: true + + roles: + - repos \ No newline at end of file From ae627da7cc55d87e1e6d7454332e426d666c9184 Mon Sep 17 00:00:00 2001 From: Tobias Bauriedel Date: Thu, 28 Dec 2023 21:36:05 +0100 Subject: [PATCH 2/2] add-basic-installation --- README.md | 5 ++++- Vagrantfile | 2 ++ roles/influxdb/defaults/main.yml | 9 +++++++++ roles/influxdb/handlers/main.yml | 5 +++++ roles/influxdb/tasks/install.yml | 15 +++++++++++++++ roles/influxdb/tasks/main.yml | 13 +++++++++++++ roles/influxdb/templates/config.toml.j2 | 6 ++++++ roles/influxdb/vars/Debian.yml | 1 + roles/influxdb/vars/RedHat.yml | 1 + roles/influxdb/vars/default.yml | 2 ++ roles/repos/tasks/Debian.yml | 4 ++-- roles/repos/vars/Debian.yml | 2 +- roles/repos/vars/default.yml | 2 +- vagrant-tests.yml | 3 ++- 14 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 roles/influxdb/defaults/main.yml create mode 100644 roles/influxdb/handlers/main.yml create mode 100644 roles/influxdb/tasks/install.yml create mode 100644 roles/influxdb/tasks/main.yml create mode 100644 roles/influxdb/templates/config.toml.j2 create mode 100644 roles/influxdb/vars/Debian.yml create mode 100644 roles/influxdb/vars/RedHat.yml create mode 100644 roles/influxdb/vars/default.yml diff --git a/README.md b/README.md index f1ad83a..9fd1dd6 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,11 @@ Collection to manage InfluxDB repository and setup. +The collection is still at a very experimental stage and is growing bit by bit according to my use cases. New configuration options will be implemented when they are needed. If you already have requests, please let me know via issue (or pull request). + It was created with the aim of refreshing my Ansible knowledge and getting in touch with Collections. Any hints for improvements are therefore welcome. + ## Supported systems | Distribution | Tested on | |--------------|-----------| @@ -15,4 +18,4 @@ It was created with the aim of refreshing my Ansible knowledge and getting in to ## Roles * repos -* influxdb (TODO) +* influxdb diff --git a/Vagrantfile b/Vagrantfile index 549519f..8ee6629 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -5,6 +5,7 @@ Vagrant.configure("2") do |config| config.vm.define "ubuntu" do |ubuntu| ubuntu.vm.hostname = "influxdb-ubuntu" ubuntu.vm.box = "bento/ubuntu-22.04" + ubuntu.vm.network "forwarded_port", guest: 8086, host: 8086 ubuntu.vm.provision "ansible" do |ansible| ansible.playbook = "vagrant-tests.yml" end @@ -13,6 +14,7 @@ Vagrant.configure("2") do |config| config.vm.define "centos" do |centos| centos.vm.hostname = "influxdb-centos" centos.vm.box = "eurolinux-vagrant/centos-stream-9" + centos.vm.network "forwarded_port", guest: 8086, host: 8087 centos.vm.provision "ansible" do |ansible| ansible.playbook = "vagrant-tests.yml" end diff --git a/roles/influxdb/defaults/main.yml b/roles/influxdb/defaults/main.yml new file mode 100644 index 0000000..17bf658 --- /dev/null +++ b/roles/influxdb/defaults/main.yml @@ -0,0 +1,9 @@ +--- +influxdb_influxdb_packages: + - influxdb2 + - influxdb2-cli + +influxdb_influxdb_bolt_path: /var/lib/influxdb/influxd.bolt +influxdb_influxdb_engine_path: /var/lib/influxdb/engine + +influxdb_influxdb_extra_config: "" diff --git a/roles/influxdb/handlers/main.yml b/roles/influxdb/handlers/main.yml new file mode 100644 index 0000000..a3fb236 --- /dev/null +++ b/roles/influxdb/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart InfluxDB + ansible.builtin.service: + name: influxdb + state: restarted diff --git a/roles/influxdb/tasks/install.yml b/roles/influxdb/tasks/install.yml new file mode 100644 index 0000000..c5ad6c8 --- /dev/null +++ b/roles/influxdb/tasks/install.yml @@ -0,0 +1,15 @@ +--- +- name: Ensure InfluxDB packages are installed + ansible.builtin.package: + name: "{{ item }}" + state: present + loop: "{{ influxdb_influxdb_packages }}" + notify: Restart InfluxDB + +- name: Ensure startup config is there + ansible.builtin.template: + src: config.toml.j2 + dest: /etc/influxdb/config.toml + mode: 0644 + owner: root + group: root diff --git a/roles/influxdb/tasks/main.yml b/roles/influxdb/tasks/main.yml new file mode 100644 index 0000000..aa092b1 --- /dev/null +++ b/roles/influxdb/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Include OS specific vars + ansible.builtin.include_vars: "{{ lookup('first_found', params) }}" + vars: + params: + files: + - "{{ ansible_os_family }}.yml" + - default.yml + paths: + - "{{ role_path }}/vars" + +- name: Include installation + ansible.builtin.include_tasks: install.yml diff --git a/roles/influxdb/templates/config.toml.j2 b/roles/influxdb/templates/config.toml.j2 new file mode 100644 index 0000000..8a46786 --- /dev/null +++ b/roles/influxdb/templates/config.toml.j2 @@ -0,0 +1,6 @@ +# {{ ansible_managed }} + +bolt-path = {{ influxdb_influxdb_bolt_path }} +engine-path = {{ influxdb_influxdb_engine_path }} + +{{ redis_extra_config }} \ No newline at end of file diff --git a/roles/influxdb/vars/Debian.yml b/roles/influxdb/vars/Debian.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/roles/influxdb/vars/Debian.yml @@ -0,0 +1 @@ +--- diff --git a/roles/influxdb/vars/RedHat.yml b/roles/influxdb/vars/RedHat.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/roles/influxdb/vars/RedHat.yml @@ -0,0 +1 @@ +--- diff --git a/roles/influxdb/vars/default.yml b/roles/influxdb/vars/default.yml new file mode 100644 index 0000000..059fbdb --- /dev/null +++ b/roles/influxdb/vars/default.yml @@ -0,0 +1,2 @@ +--- +# default vars for influxdb.influxdb diff --git a/roles/repos/tasks/Debian.yml b/roles/repos/tasks/Debian.yml index f1a7969..b58400c 100644 --- a/roles/repos/tasks/Debian.yml +++ b/roles/repos/tasks/Debian.yml @@ -5,6 +5,6 @@ url: "{{ influxdb_repo_key_url }}" - name: apt - Add repository to list - ansible.builtin.apt_repository: - repo: "{{ influxdb_repo_stable }}" + ansible.builtin.apt_repository: + repo: "{{ influxdb_repo_stable }}" state: present diff --git a/roles/repos/vars/Debian.yml b/roles/repos/vars/Debian.yml index 010d6b8..a54dba0 100644 --- a/roles/repos/vars/Debian.yml +++ b/roles/repos/vars/Debian.yml @@ -1,2 +1,2 @@ --- -influxdb_repo_stable: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release|lower }} stable" \ No newline at end of file +influxdb_repo_stable: "deb https://repos.influxdata.com/{{ ansible_distribution|lower }} {{ ansible_distribution_release|lower }} stable" diff --git a/roles/repos/vars/default.yml b/roles/repos/vars/default.yml index f330686..746d187 100644 --- a/roles/repos/vars/default.yml +++ b/roles/repos/vars/default.yml @@ -1,2 +1,2 @@ --- -# default variables for influxdb.repos \ No newline at end of file +# default variables for influxdb.repos diff --git a/vagrant-tests.yml b/vagrant-tests.yml index 56c70bb..4bd54d5 100644 --- a/vagrant-tests.yml +++ b/vagrant-tests.yml @@ -3,4 +3,5 @@ become: true roles: - - repos \ No newline at end of file + - repos + - influxdb