Skip to content

Commit 0a4aa41

Browse files
Merge pull request #8 from punktDe/ansible-lint-molecule
Add molecule testing, add ansible-lint commit hook, fix linting errors
2 parents 7adb239 + cc4d0a8 commit 0a4aa41

File tree

20 files changed

+377
-189
lines changed

20 files changed

+377
-189
lines changed

.ansible-lint

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
skip_list:
3+
- 'risky-shell-pipe'
4+
- 'role-name'
5+
6+
warn_list:
7+
- package-latest
8+
- unnamed-task
9+
- command-instead-of-shell
10+
- no-handler

.github/workflows/test.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: Test
3+
run-name: Run molecule tests on the role
4+
on:
5+
push:
6+
workflow_dispatch:
7+
8+
jobs:
9+
lint:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v3
14+
15+
- name: Set up Python
16+
uses: actions/setup-python@v2
17+
with:
18+
python-version: '3.x'
19+
20+
- name: Install dependencies.
21+
run: pip install yamllint ansible-lint ansible
22+
23+
- name: Run ansible-lint
24+
run: "ansible-lint"
25+
26+
molecule:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v3
31+
32+
- name: Set up Python
33+
uses: actions/setup-python@v2
34+
with:
35+
python-version: '3.x'
36+
37+
- name: Install dependencies.
38+
run: |
39+
python -m pip install --upgrade pip
40+
pip install ansible docker molecule molecule-plugins
41+
42+
- name: Install Galaxy dependencies.
43+
run: ansible-galaxy collection install community.docker community.mysql
44+
45+
- name: Run molecule
46+
run: "molecule test"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.DS_Store
22
*.pyc
33
__pycache__
4+
files/

.pre-commit-config.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
repos:
3+
- repo: https://github.com/ansible/ansible-lint.git
4+
rev: v6.22.1
5+
hooks:
6+
- id: ansible-lint
7+
files: \.(yaml|yml)$

.yamllint

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
# Based on ansible-lint config
3+
extends: default
4+
5+
rules:
6+
braces:
7+
max-spaces-inside: 1
8+
level: error
9+
brackets:
10+
max-spaces-inside: 1
11+
level: error
12+
colons:
13+
max-spaces-after: -1
14+
level: error
15+
commas:
16+
max-spaces-after: -1
17+
level: error
18+
comments: disable
19+
comments-indentation: disable
20+
document-start: disable
21+
empty-lines:
22+
max: 3
23+
level: error
24+
hyphens:
25+
level: error
26+
indentation: disable
27+
key-duplicates: enable
28+
line-length: disable
29+
new-line-at-end-of-file: disable
30+
new-lines:
31+
type: unix
32+
trailing-spaces: disable
33+
truthy: disable

defaults/main.yaml

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
---
2+
apt_arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"
3+
24
mariadb:
3-
system:
4-
user:
5-
root:
6-
name: root
7-
group: >-
8-
{%- if ansible_system == 'Linux' -%}
9-
root
10-
{%- else -%}
11-
wheel
12-
{%- endif -%}
5+
version: 10.6
136
prefix:
147
config: >-
158
{%- if ansible_system == 'Linux' -%}
@@ -60,9 +53,8 @@ mariadb:
6053
application_event_log: /var/log/application_events/MariaDB-Backup.log
6154
repository:
6255
apt:
63-
key_url:
64-
repository:
65-
version:
56+
key_url: https://mariadb.org/mariadb_release_signing_key.asc
57+
repository: "deb [arch={{ apt_arch }}] http://mirror.netcologne.de/mariadb/repo/{{ vars.mariadb.version }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release | lower }} main"
6658
mariadb_root_password: >-
6759
{%- if mariadb.galera.cluster and not mariadb.galera.initializer -%}
6860
{{- (mariadb_galera_cluster_nodes
@@ -77,7 +69,7 @@ mariadb_root_password: >-
7769
mariadb_galera_cluster_nodes: >-
7870
{%- set cluster_nodes = [] -%}
7971
{%- for node, node_vars in hostvars.items() -%}
80-
{%- if (((node_vars.mariadb|default({}))['my.cnf']|default({}))['galera']|default({}))['wsrep_cluster_name']|default('') == ((mariadb['my.cnf']|default({})).galera|default({})).wsrep_cluster_name|default('') -%}
72+
{%- if (((node_vars.mariadb | default({}))['my.cnf'] | default({}))['galera'] | default({}))['wsrep_cluster_name'] | default('') == ((mariadb['my.cnf'] | default({})).galera | default({})).wsrep_cluster_name | default('') -%}
8173
{%- set _ = cluster_nodes.append(node) -%}
8274
{%- endif -%}
8375
{%- endfor -%}

handlers/main.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
---
22
- name: Start MariaDB
3-
service:
3+
ansible.builtin.service:
44
name: "{{ mariadb.service }}"
55
state: started
66
register: mysqld_service_result
77

88
- name: Restart MariaDB
99
throttle: 1
10-
service:
10+
ansible.builtin.service:
1111
name: "{{ mariadb.service }}"
1212
state: restarted
1313
when: not (mysqld_service_result is defined and mysqld_service_result.changed)
1414

1515
- name: Restart garb
16-
service:
16+
ansible.builtin.service:
1717
name: garb
1818
state: restarted
1919
when: not mariadb_service_garb_start_result.changed

meta/main.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
11
---
22
dependencies: []
3+
4+
galaxy_info:
5+
author: "Punkt.de"
6+
license: "MIT"
7+
description: "MariaDB role for Proserver"
8+
role_name: "proserver_mariadb"
9+
namespace: "punktde"
10+
min_ansible_version: "2.15"

molecule/default/converge.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
- name: Converge
3+
hosts: all
4+
tasks:
5+
- name: "Include ansible-proserver-mariadb"
6+
ansible.builtin.include_role:
7+
name: "ansible-proserver-mariadb"

molecule/default/molecule.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
dependency:
3+
name: galaxy
4+
driver:
5+
name: docker
6+
platforms:
7+
- name: instance
8+
image: geerlingguy/docker-ubuntu2204-ansible
9+
command: /lib/systemd/systemd
10+
pre_build_image: true
11+
privileged: true
12+
cgroupns_mode: host
13+
volumes:
14+
- /sys/fs/cgroup:/sys/fs/cgroup:rw
15+
provisioner:
16+
name: ansible
17+
playbooks:
18+
converge: ${MOLECULE_PLAYBOOK:-converge.yml}
19+
verifier:
20+
name: ansible

0 commit comments

Comments
 (0)