tests added, pretty simple, should pass
This commit is contained in:
parent
d69950adcb
commit
65254e28d5
82
.gitlab-ci.yml
Normal file
82
.gitlab-ci.yml
Normal file
@ -0,0 +1,82 @@
|
||||
---
|
||||
stages:
|
||||
- verify
|
||||
- test-default
|
||||
- test-with-custom-ascii
|
||||
|
||||
image:
|
||||
name: registry.ednz.fr/forge/ansible-runner
|
||||
|
||||
variables:
|
||||
ANSIBLE_HOST_KEY_CHECKING: 'false'
|
||||
ANSIBLE_FORCE_COLOR: 'true'
|
||||
ANSIBLE_PYTHON_INTERPRETER: /usr/bin/python3
|
||||
DOCKER_AUTH_CONFIG: $CI_DOCKER_AUTH_CONFIG
|
||||
|
||||
.stage-test-default:
|
||||
stage: test-default
|
||||
|
||||
.stage-test-with-custom-ascii:
|
||||
stage: test-with-custom-ascii
|
||||
|
||||
.variables-ubuntu-2004:
|
||||
variables:
|
||||
MOLECULE_TEST_OS: "ubuntu2004"
|
||||
|
||||
.variables-ubuntu-2204:
|
||||
variables:
|
||||
MOLECULE_TEST_OS: "ubuntu2204"
|
||||
|
||||
.variables-debian-11:
|
||||
variables:
|
||||
MOLECULE_TEST_OS: "debian11"
|
||||
|
||||
.script-molecule-test-default:
|
||||
script:
|
||||
- molecule test
|
||||
|
||||
.script-molecule-test-with-custom-ascii:
|
||||
script:
|
||||
- molecule test -s with_custom_repo
|
||||
|
||||
ansible-verify:
|
||||
stage: verify
|
||||
script:
|
||||
- yamllint . -c .yamllint
|
||||
- ansible-lint
|
||||
|
||||
ansible-test-ubuntu-2004-default:
|
||||
extends:
|
||||
- .stage-test-default
|
||||
- .variables-ubuntu-2004
|
||||
- .script-molecule-test-default
|
||||
|
||||
ansible-test-ubuntu-2204-default:
|
||||
extends:
|
||||
- .stage-test-default
|
||||
- .variables-ubuntu-2204
|
||||
- .script-molecule-test-default
|
||||
|
||||
ansible-test-debian-11-default:
|
||||
extends:
|
||||
- .stage-test-default
|
||||
- .variables-debian-11
|
||||
- .script-molecule-test-default
|
||||
|
||||
ansible-test-ubuntu-2004-with-custom-ascii:
|
||||
extends:
|
||||
- .stage-test-with-custom-ascii
|
||||
- .variables-ubuntu-2004
|
||||
- .script-molecule-test-with-custom-ascii
|
||||
|
||||
ansible-test-ubuntu-2204-with-custom-ascii:
|
||||
extends:
|
||||
- .stage-test-with-custom-ascii
|
||||
- .variables-ubuntu-2204
|
||||
- .script-molecule-test-with-custom-ascii
|
||||
|
||||
ansible-test-debian-11-with-custom-ascii:
|
||||
extends:
|
||||
- .stage-test-with-custom-ascii
|
||||
- .variables-debian-11
|
||||
- .script-molecule-test-with-custom-ascii
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
# defaults file for update_motd
|
||||
update_motd_filename: "00-motd-neofetch"
|
||||
update_motd_print_info:
|
||||
- name: "CPU"
|
||||
module: "cpu"
|
||||
|
@ -1,3 +1,3 @@
|
||||
#! /bin/bash
|
||||
#! /bin/sh
|
||||
|
||||
neofetch --config /etc/profile.d/motd.cfg
|
@ -1,3 +1,4 @@
|
||||
---
|
||||
galaxy_info:
|
||||
namespace: 'ednxzu'
|
||||
role_name: 'update_motd'
|
||||
|
4
meta/requirements.yml
Normal file
4
meta/requirements.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
# meta file for update_motd
|
||||
roles:
|
||||
- name: ednxzu.manage_apt_packages
|
@ -1,3 +1,4 @@
|
||||
---
|
||||
# requirements file for molecule
|
||||
roles: []
|
||||
roles:
|
||||
- name: ednxzu.manage_apt_packages
|
||||
|
@ -3,8 +3,28 @@
|
||||
|
||||
def test_hosts_file(host):
|
||||
"""Validate /etc/hosts file."""
|
||||
f = host.file("/etc/hosts")
|
||||
etc_hosts = host.file("/etc/hosts")
|
||||
assert etc_hosts.exists
|
||||
assert etc_hosts.user == "root"
|
||||
assert etc_hosts.group == "root"
|
||||
|
||||
assert f.exists
|
||||
assert f.user == "root"
|
||||
assert f.group == "root"
|
||||
def test_motd_file(host):
|
||||
"""Validate motd.cfg file."""
|
||||
motd_cfg = host.file("/etc/profile.d/motd.cfg")
|
||||
dist_os = host.system_info.distribution
|
||||
assert motd_cfg.exists
|
||||
assert motd_cfg.user == "root"
|
||||
assert motd_cfg.group == "root"
|
||||
assert motd_cfg.mode == 0o644
|
||||
assert motd_cfg.contains("print_info()")
|
||||
assert motd_cfg.contains("ascii_distro=\"" + dist_os + "_small\"")
|
||||
|
||||
def test_motd_file(host):
|
||||
"""Validate 00-motd-neofetch file."""
|
||||
motd_neofetch = host.file("/etc/update-motd.d/00-motd-neofetch")
|
||||
assert motd_neofetch.exists
|
||||
assert motd_neofetch.user == "root"
|
||||
assert motd_neofetch.group == "root"
|
||||
assert motd_neofetch.mode == 0o744
|
||||
assert motd_neofetch.contains("#! /bin/sh")
|
||||
assert motd_neofetch.contains("neofetch --config /etc/profile.d/motd.cfg")
|
7
molecule/with_custom_ascii/converge.yml
Normal file
7
molecule/with_custom_ascii/converge.yml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
tasks:
|
||||
- name: "Include ednxzu.update_motd"
|
||||
ansible.builtin.include_role:
|
||||
name: "ednxzu.update_motd"
|
12
molecule/with_custom_ascii/group_vars/all.yml
Normal file
12
molecule/with_custom_ascii/group_vars/all.yml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
update_motd_filename: "00-motd-neofetch"
|
||||
update_motd_print_info:
|
||||
- name: "CPU"
|
||||
module: "cpu"
|
||||
- name: "Memory"
|
||||
module: "memory"
|
||||
- name: "Local IP"
|
||||
module: local_ip
|
||||
- name: "Disk"
|
||||
module: "disk"
|
||||
update_motd_ascii_distro: "{{ ansible_distribution }}_small"
|
41
molecule/with_custom_ascii/molecule.yml
Normal file
41
molecule/with_custom_ascii/molecule.yml
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
options:
|
||||
requirements-file: ./requirements.yml
|
||||
driver:
|
||||
name: docker
|
||||
platforms:
|
||||
- name: instance
|
||||
image: geerlingguy/docker-${MOLECULE_TEST_OS}-ansible
|
||||
command: ""
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup
|
||||
cgroupns_mode: host
|
||||
privileged: true
|
||||
pre_build_image: true
|
||||
provisioner:
|
||||
name: ansible
|
||||
config_options:
|
||||
defaults:
|
||||
remote_tmp: /tmp/.ansible
|
||||
verifier:
|
||||
name: testinfra
|
||||
lint: |
|
||||
yamllint -c .yamllint .
|
||||
ansible-lint
|
||||
scenario:
|
||||
name: with_custom_ascii
|
||||
test_sequence:
|
||||
- dependency
|
||||
- lint
|
||||
- cleanup
|
||||
- destroy
|
||||
- syntax
|
||||
- create
|
||||
- prepare
|
||||
- converge
|
||||
- idempotence
|
||||
- verify
|
||||
- cleanup
|
||||
- destroy
|
4
molecule/with_custom_ascii/requirements.yml
Normal file
4
molecule/with_custom_ascii/requirements.yml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
# requirements file for molecule
|
||||
roles:
|
||||
- name: ednxzu.manage_apt_packages
|
22
molecule/with_custom_ascii/tests/conftest.py
Normal file
22
molecule/with_custom_ascii/tests/conftest.py
Normal file
@ -0,0 +1,22 @@
|
||||
"""PyTest Fixtures."""
|
||||
from __future__ import absolute_import
|
||||
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def pytest_runtest_setup(item):
|
||||
"""Run tests only when under molecule with testinfra installed."""
|
||||
try:
|
||||
import testinfra
|
||||
except ImportError:
|
||||
pytest.skip("Test requires testinfra", allow_module_level=True)
|
||||
if "MOLECULE_INVENTORY_FILE" in os.environ:
|
||||
pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||
os.environ["MOLECULE_INVENTORY_FILE"]
|
||||
).get_hosts("all")
|
||||
else:
|
||||
pytest.skip(
|
||||
"Test should run only from inside molecule.", allow_module_level=True
|
||||
)
|
28
molecule/with_custom_ascii/tests/test_default.py
Normal file
28
molecule/with_custom_ascii/tests/test_default.py
Normal file
@ -0,0 +1,28 @@
|
||||
"""Role testing files using testinfra."""
|
||||
|
||||
|
||||
def test_hosts_file(host):
|
||||
"""Validate /etc/hosts file."""
|
||||
etc_hosts = host.file("/etc/hosts")
|
||||
assert etc_hosts.exists
|
||||
assert etc_hosts.user == "root"
|
||||
assert etc_hosts.group == "root"
|
||||
|
||||
def test_motd_file(host):
|
||||
"""Validate motd.cfg file."""
|
||||
motd_cfg = host.file("/etc/profile.d/motd.cfg")
|
||||
assert motd_cfg.exists
|
||||
assert motd_cfg.user == "root"
|
||||
assert motd_cfg.group == "root"
|
||||
assert motd_cfg.mode == 0o644
|
||||
assert motd_cfg.contains("print_info()")
|
||||
|
||||
def test_motd_file(host):
|
||||
"""Validate 00-motd-neofetch file."""
|
||||
motd_neofetch = host.file("/etc/update-motd.d/00-motd-neofetch")
|
||||
assert motd_neofetch.exists
|
||||
assert motd_neofetch.user == "root"
|
||||
assert motd_neofetch.group == "root"
|
||||
assert motd_neofetch.mode == 0o744
|
||||
assert motd_neofetch.contains("#! /bin/sh")
|
||||
assert motd_neofetch.contains("neofetch --config /etc/profile.d/motd.cfg")
|
@ -23,3 +23,9 @@
|
||||
path: "{{ item.path }}"
|
||||
state: absent
|
||||
loop: "{{ collected_files.files + collected_directories.files }}"
|
||||
when: (item.path|basename) != update_motd_filename
|
||||
|
||||
- name: "Remove /etc/motd file"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/motd"
|
||||
state: absent
|
||||
|
17
tasks/configure.yml
Normal file
17
tasks/configure.yml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
# task/configure file for update_motd
|
||||
- name: "Copy configuration file for neofetch motd"
|
||||
ansible.builtin.template:
|
||||
src: "motd.cfg.j2"
|
||||
dest: "{{ update_motd_config_path }}/motd.cfg"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: "Copy motd script file"
|
||||
ansible.builtin.copy:
|
||||
src: files/motd.sh
|
||||
dest: "{{ update_motd_path }}/{{ update_motd_filename }}"
|
||||
mode: '0744'
|
||||
owner: root
|
||||
group: root
|
10
tasks/install.yml
Normal file
10
tasks/install.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
# task/install file for update_motd
|
||||
- name: "Install neoftech"
|
||||
ansible.builtin.include_role:
|
||||
name: ednxzu.manage_apt_packages
|
||||
vars:
|
||||
manage_apt_packages_list:
|
||||
- name: neofetch
|
||||
version: latest
|
||||
state: present
|
@ -1,8 +1,10 @@
|
||||
---
|
||||
# task/main file for update_motd
|
||||
- name: "Debug"
|
||||
ansible.builtin.debug:
|
||||
msg: "{{ ansible_distribution }}"
|
||||
- name: "Import install.yml"
|
||||
ansible.builtin.include_tasks: install.yml
|
||||
|
||||
- name: "Import cleanup.yml"
|
||||
ansible.builtin.include_tasks: cleanup.yml
|
||||
ansible.builtin.include_tasks: cleanup.yml
|
||||
|
||||
- name: "Import configure.yml"
|
||||
ansible.builtin.include_tasks: configure.yml
|
||||
|
@ -3,76 +3,75 @@
|
||||
print_info() {
|
||||
info title
|
||||
info underline
|
||||
{% for module in alpine_motd_print_info %}
|
||||
{% for module in update_motd_print_info %}
|
||||
info "{{ module.name }}" {{ module.module }}
|
||||
{% endfor %}
|
||||
info cols
|
||||
}
|
||||
|
||||
title_fqdn="{{ alpine_motd_title_fqdn }}"
|
||||
kernel_shorthand="{{ alpine_motd_kernel_shorthand }}"
|
||||
distro_shorthand="{{ alpine_motd_distro_shorthand }}"
|
||||
os_arch="{{ alpine_motd_os_arch }}"
|
||||
uptime_shorthand="{{ alpine_motd_uptime_shorthand }}"
|
||||
memory_percent="{{ alpine_motd_memory_percent }}"
|
||||
memory_unit="{{ alpine_motd_memory_unit }}"
|
||||
package_managers="{{ alpine_motd_package_managers }}"
|
||||
shell_path="{{ alpine_motd_shell_path }}"
|
||||
shell_version="{{ alpine_motd_shell_version }}"
|
||||
speed_type="{{ alpine_motd_speed_type }}"
|
||||
speed_shorthand="{{ alpine_motd_speed_shorthand }}"
|
||||
cpu_brand="{{ alpine_motd_cpu_brand }}"
|
||||
cpu_speed="{{ alpine_motd_cpu_speed }}"
|
||||
cpu_cores="{{ alpine_motd_cpu_cores }}"
|
||||
cpu_temp="{{ alpine_motd_cpu_temp }}"
|
||||
gpu_brand="{{ alpine_motd_gpu_brand }}"
|
||||
gpu_type="{{ alpine_motd_gpu_type }}"
|
||||
refresh_rate="{{ alpine_motd_refresh_rate }}"
|
||||
gtk_shorthand="{{ alpine_motd_gtk_shorthand }}"
|
||||
gtk2="{{ alpine_motd_gtk2 }}"
|
||||
gtk3="{{ alpine_motd_gtk3 }}"
|
||||
public_ip_host="{{ alpine_motd_public_ip_host }}"
|
||||
public_ip_timeout="{{ alpine_motd_public_ip_timeout }}"
|
||||
local_ip_interface={{ alpine_motd_local_ip_interface }}
|
||||
de_version="{{ alpine_motd_de_version }}"
|
||||
disk_show={{ alpine_motd_disk_show }}
|
||||
disk_subtitle="{{ alpine_motd_disk_subtitle }}"
|
||||
disk_percent="{{ alpine_motd_disk_percent }}"
|
||||
music_player="{{ alpine_motd_music_player }}"
|
||||
song_format="{{ alpine_motd_song_format }}"
|
||||
song_shorthand="{{ alpine_motd_song_shorthand }}"
|
||||
mpc_args={{ alpine_motd_mpc_args }}
|
||||
colors={{ alpine_motd_colors }}
|
||||
bold="{{ alpine_motd_bold }}"
|
||||
underline_enabled="{{ alpine_motd_underline_enabled }}"
|
||||
underline_char="{{ alpine_motd_underline_char }}"
|
||||
separator="{{ alpine_motd_separator }}"
|
||||
block_range={{ alpine_motd_block_range }}
|
||||
color_blocks="{{ alpine_motd_color_blocks }}"
|
||||
block_width={{ alpine_motd_block_width }}
|
||||
block_height={{ alpine_motd_block_height }}
|
||||
col_offset="{{ alpine_motd_col_offset }}"
|
||||
bar_char_elapsed="{{ alpine_motd_bar_char_elapsed }}"
|
||||
bar_char_total="{{ alpine_motd_bar_char_total }}"
|
||||
bar_border="{{ alpine_motd_bar_border }}"
|
||||
bar_length={{ alpine_motd_bar_length }}
|
||||
bar_color_elapsed="{{ alpine_motd_bar_color_elapsed }}"
|
||||
bar_color_total="{{ alpine_motd_bar_color_total }}"
|
||||
memory_display="{{ alpine_motd_memory_display }}"
|
||||
battery_display="{{ alpine_motd_battery_display }}"
|
||||
disk_display="{{ alpine_motd_disk_display }}"
|
||||
image_backend="{{ alpine_motd_image_backend }}"
|
||||
image_source="{{ alpine_motd_image_source }}"
|
||||
ascii_distro="{{ alpine_motd_ascii_distro }}"
|
||||
ascii_colors={{ alpine_motd_ascii_colors }}
|
||||
ascii_bold="{{ alpine_motd_ascii_bold }}"
|
||||
image_loop="{{ alpine_motd_image_loop }}"
|
||||
thumbnail_dir="{{ alpine_motd_thumbnail_dir }}"
|
||||
crop_mode="{{ alpine_motd_crop_mode }}"
|
||||
image_size="{{ alpine_motd_image_size }}"
|
||||
catimg_size="{{ alpine_motd_catimg_size }}"
|
||||
gap={{ alpine_motd_gap }}
|
||||
yoffset={{ alpine_motd_yoffset }}
|
||||
xoffset={{ alpine_motd_xoffset }}
|
||||
background_color="{{ alpine_motd_background_color }}"
|
||||
stdout="{{ alpine_motd_stdout }}"
|
||||
title_fqdn="{{ update_motd_title_fqdn }}"
|
||||
kernel_shorthand="{{ update_motd_kernel_shorthand }}"
|
||||
distro_shorthand="{{ update_motd_distro_shorthand }}"
|
||||
os_arch="{{ update_motd_os_arch }}"
|
||||
uptime_shorthand="{{ update_motd_uptime_shorthand }}"
|
||||
memory_percent="{{ update_motd_memory_percent }}"
|
||||
memory_unit="{{ update_motd_memory_unit }}"
|
||||
package_managers="{{ update_motd_package_managers }}"
|
||||
shell_path="{{ update_motd_shell_path }}"
|
||||
shell_version="{{ update_motd_shell_version }}"
|
||||
speed_type="{{ update_motd_speed_type }}"
|
||||
speed_shorthand="{{ update_motd_speed_shorthand }}"
|
||||
cpu_brand="{{ update_motd_cpu_brand }}"
|
||||
cpu_speed="{{ update_motd_cpu_speed }}"
|
||||
cpu_cores="{{ update_motd_cpu_cores }}"
|
||||
cpu_temp="{{ update_motd_cpu_temp }}"
|
||||
gpu_brand="{{ update_motd_gpu_brand }}"
|
||||
gpu_type="{{ update_motd_gpu_type }}"
|
||||
refresh_rate="{{ update_motd_refresh_rate }}"
|
||||
gtk_shorthand="{{ update_motd_gtk_shorthand }}"
|
||||
gtk2="{{ update_motd_gtk2 }}"
|
||||
gtk3="{{ update_motd_gtk3 }}"
|
||||
public_ip_host="{{ update_motd_public_ip_host }}"
|
||||
public_ip_timeout="{{ update_motd_public_ip_timeout }}"
|
||||
local_ip_interface={{ update_motd_local_ip_interface }}
|
||||
de_version="{{ update_motd_de_version }}"
|
||||
disk_show={{ update_motd_disk_show }}
|
||||
disk_subtitle="{{ update_motd_disk_subtitle }}"
|
||||
disk_percent="{{ update_motd_disk_percent }}"
|
||||
music_player="{{ update_motd_music_player }}"
|
||||
song_format="{{ update_motd_song_format }}"
|
||||
song_shorthand="{{ update_motd_song_shorthand }}"
|
||||
mpc_args={{ update_motd_mpc_args }}
|
||||
colors={{ update_motd_colors }}
|
||||
bold="{{ update_motd_bold }}"
|
||||
underline_enabled="{{ update_motd_underline_enabled }}"
|
||||
underline_char="{{ update_motd_underline_char }}"
|
||||
separator="{{ update_motd_separator }}"
|
||||
block_range={{ update_motd_block_range }}
|
||||
color_blocks="{{ update_motd_color_blocks }}"
|
||||
block_width={{ update_motd_block_width }}
|
||||
block_height={{ update_motd_block_height }}
|
||||
col_offset="{{ update_motd_col_offset }}"
|
||||
bar_char_elapsed="{{ update_motd_bar_char_elapsed }}"
|
||||
bar_char_total="{{ update_motd_bar_char_total }}"
|
||||
bar_border="{{ update_motd_bar_border }}"
|
||||
bar_length={{ update_motd_bar_length }}
|
||||
bar_color_elapsed="{{ update_motd_bar_color_elapsed }}"
|
||||
bar_color_total="{{ update_motd_bar_color_total }}"
|
||||
memory_display="{{ update_motd_memory_display }}"
|
||||
battery_display="{{ update_motd_battery_display }}"
|
||||
disk_display="{{ update_motd_disk_display }}"
|
||||
image_backend="{{ update_motd_image_backend }}"
|
||||
image_source="{{ update_motd_image_source }}"
|
||||
ascii_distro="{{ update_motd_ascii_distro }}"
|
||||
ascii_colors={{ update_motd_ascii_colors }}
|
||||
ascii_bold="{{ update_motd_ascii_bold }}"
|
||||
image_loop="{{ update_motd_image_loop }}"
|
||||
thumbnail_dir="{{ update_motd_thumbnail_dir }}"
|
||||
crop_mode="{{ update_motd_crop_mode }}"
|
||||
image_size="{{ update_motd_image_size }}"
|
||||
catimg_size="{{ update_motd_catimg_size }}"
|
||||
gap={{ update_motd_gap }}
|
||||
yoffset={{ update_motd_yoffset }}
|
||||
xoffset={{ update_motd_xoffset }}
|
||||
background_color="{{ update_motd_background_color }}"
|
||||
stdout="{{ update_motd_stdout }}"
|
@ -1,3 +1,4 @@
|
||||
---
|
||||
# vars file for update_motd
|
||||
update_motd_path: "/etc/update-motd.d"
|
||||
update_motd_path: "/etc/update-motd.d"
|
||||
update_motd_config_path: "/etc/profile.d"
|
||||
|
Loading…
Reference in New Issue
Block a user