Repair Seriatim ownership and permission drift

This commit is contained in:
2026-09-07 18:54:47 +00:00
parent c6c1907f78
commit f2c1b1aa89
3 changed files with 62 additions and 0 deletions

View File

@@ -30,6 +30,14 @@
checksum_algorithm: sha256
register: seriatim_installed_binary_stat
- name: Require a regular installed Seriatim binary path
ansible.builtin.assert:
that:
- not seriatim_installed_binary_stat.stat.exists or seriatim_installed_binary_stat.stat.isreg
fail_msg: >-
Seriatim binary path exists but is not a regular file:
{{ seriatim_binary_path }}. Move the unexpected object before rerunning the role.
- name: Inspect Seriatim build input state
ansible.builtin.stat:
path: "{{ seriatim_build_state_dir }}/build-inputs.json"
@@ -203,3 +211,31 @@
path: "{{ seriatim_build_tempdir.path }}"
state: absent
when: seriatim_build_tempdir.path is defined
- name: Converge installed Seriatim binary metadata
ansible.builtin.file:
path: "{{ seriatim_binary_path }}"
state: file
owner: root
group: root
mode: "0755"
- name: Converge Seriatim build state directory metadata
ansible.builtin.file:
path: "{{ seriatim_build_state_dir }}"
state: directory
owner: root
group: root
mode: "0755"
- name: Converge Seriatim build state file metadata
ansible.builtin.file:
path: "{{ seriatim_build_state_dir }}/{{ item }}"
state: file
owner: root
group: root
mode: "0644"
loop:
- build-inputs.json
- fingerprint.sha256
- binary.sha256

View File

@@ -66,6 +66,18 @@ require_changed_recap "$test_tmp/build-input-repair.log"
run_converge | tee "$test_tmp/build-input-repair-repeat.log"
require_clean_recap "$test_tmp/build-input-repair-repeat.log"
sudo chown "$(id -u):$(id -g)" /usr/local/bin/seriatim
sudo chmod 0777 /usr/local/bin/seriatim
sudo chown "$(id -u):$(id -g)" /usr/local/src/seriatim.ansible-build-state
sudo chmod 0700 /usr/local/src/seriatim.ansible-build-state
sudo chown "$(id -u):$(id -g)" /usr/local/src/seriatim.ansible-build-state/*
sudo chmod 0600 /usr/local/src/seriatim.ansible-build-state/*
run_converge | tee "$test_tmp/metadata-repair.log"
require_changed_recap "$test_tmp/metadata-repair.log"
"$playbook" -i "$inventory" tests/verify.yml
run_converge | tee "$test_tmp/metadata-repair-repeat.log"
require_clean_recap "$test_tmp/metadata-repair-repeat.log"
baseline_binary=$(binary_digest)
baseline_state=$(state_digest)
for scenario in \

View File

@@ -26,6 +26,15 @@
path: "{{ seriatim_verify_state_dir }}"
register: seriatim_verify_state_stat
- name: Inspect Seriatim build state files
ansible.builtin.stat:
path: "{{ seriatim_verify_state_dir }}/{{ item }}"
loop:
- build-inputs.json
- fingerprint.sha256
- binary.sha256
register: seriatim_verify_state_file_stats
- name: Resolve installed Seriatim source commit
ansible.builtin.command:
argv:
@@ -89,6 +98,11 @@
- seriatim_verify_state_stat.stat.isdir
- seriatim_verify_state_stat.stat.pw_name == 'root'
- seriatim_verify_state_stat.stat.gr_name == 'root'
- seriatim_verify_state_stat.stat.mode == '0755'
- seriatim_verify_state_file_stats.results | map(attribute='stat.isreg') | unique | list == [true]
- seriatim_verify_state_file_stats.results | map(attribute='stat.pw_name') | unique | list == ['root']
- seriatim_verify_state_file_stats.results | map(attribute='stat.gr_name') | unique | list == ['root']
- seriatim_verify_state_file_stats.results | map(attribute='stat.mode') | unique | list == ['0644']
- seriatim_verify_commit.stdout == seriatim_expected_commit
- seriatim_verify_source_status.stdout == ''
- seriatim_verify_version.stdout == 'seriatim version ' ~ seriatim_expected_version