62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
import os
|
|
import testinfra.utils.ansible_runner
|
|
|
|
test_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
|
os.environ["MOLECULE_INVENTORY_FILE"]).get_hosts("all")
|
|
|
|
def test_user_and_group_exist(host):
|
|
user = host.user("blackbox_exporter")
|
|
assert user.exists
|
|
assert user.group == "blackbox_exporter"
|
|
|
|
def test_service_enabled_and_running(host):
|
|
svc = host.service("blackbox_exporter")
|
|
assert svc.is_enabled
|
|
assert svc.is_running
|
|
|
|
def test_binary_and_symlink(host):
|
|
binary = host.file("/opt/blackbox_exporter/blackbox_exporter")
|
|
symlink = host.file("/usr/local/bin/blackbox_exporter")
|
|
|
|
assert binary.exists
|
|
assert binary.mode & 0o111
|
|
assert binary.user == "blackbox_exporter"
|
|
assert binary.group == "blackbox_exporter"
|
|
|
|
assert symlink.exists
|
|
assert symlink.is_symlink
|
|
assert symlink.linked_to == "/opt/blackbox_exporter/blackbox_exporter"
|
|
|
|
def test_config_directory(host):
|
|
cfg_dir = host.file("/etc/blackbox_exporter")
|
|
assert cfg_dir.exists
|
|
assert cfg_dir.is_directory
|
|
assert cfg_dir.user == "blackbox_exporter"
|
|
assert cfg_dir.group == "blackbox_exporter"
|
|
assert cfg_dir.mode == 0o755
|
|
|
|
def test_config_file(host):
|
|
cfg = host.file("/etc/blackbox_exporter/blackbox.yml")
|
|
assert cfg.exists
|
|
assert cfg.user == "blackbox_exporter"
|
|
assert cfg.group == "blackbox_exporter"
|
|
assert cfg.mode == 0o644
|
|
assert cfg.contains("modules:")
|
|
assert cfg.contains("http_2xx")
|
|
|
|
def test_systemd_unit_file(host):
|
|
unit = host.file("/etc/systemd/system/blackbox_exporter.service")
|
|
assert unit.exists
|
|
assert unit.user == "root"
|
|
assert unit.group == "root"
|
|
assert unit.mode == 0o644
|
|
assert unit.contains("ExecStart=/usr/local/bin/blackbox_exporter")
|
|
|
|
def test_listen_socket(host):
|
|
socket = host.socket("tcp://0.0.0.0:9115")
|
|
assert socket.is_listening
|
|
|
|
def test_logs_exist(host):
|
|
journalctl = host.check_output("journalctl -u blackbox_exporter --no-pager")
|
|
assert "Listening on" in journalctl or "level=info" in journalctl
|