Repair Seriatim ownership and permission drift
This commit is contained in:
@@ -30,6 +30,14 @@
|
|||||||
checksum_algorithm: sha256
|
checksum_algorithm: sha256
|
||||||
register: seriatim_installed_binary_stat
|
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
|
- name: Inspect Seriatim build input state
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ seriatim_build_state_dir }}/build-inputs.json"
|
path: "{{ seriatim_build_state_dir }}/build-inputs.json"
|
||||||
@@ -203,3 +211,31 @@
|
|||||||
path: "{{ seriatim_build_tempdir.path }}"
|
path: "{{ seriatim_build_tempdir.path }}"
|
||||||
state: absent
|
state: absent
|
||||||
when: seriatim_build_tempdir.path is defined
|
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
|
||||||
|
|||||||
@@ -66,6 +66,18 @@ require_changed_recap "$test_tmp/build-input-repair.log"
|
|||||||
run_converge | tee "$test_tmp/build-input-repair-repeat.log"
|
run_converge | tee "$test_tmp/build-input-repair-repeat.log"
|
||||||
require_clean_recap "$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_binary=$(binary_digest)
|
||||||
baseline_state=$(state_digest)
|
baseline_state=$(state_digest)
|
||||||
for scenario in \
|
for scenario in \
|
||||||
|
|||||||
@@ -26,6 +26,15 @@
|
|||||||
path: "{{ seriatim_verify_state_dir }}"
|
path: "{{ seriatim_verify_state_dir }}"
|
||||||
register: seriatim_verify_state_stat
|
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
|
- name: Resolve installed Seriatim source commit
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
argv:
|
argv:
|
||||||
@@ -89,6 +98,11 @@
|
|||||||
- seriatim_verify_state_stat.stat.isdir
|
- seriatim_verify_state_stat.stat.isdir
|
||||||
- seriatim_verify_state_stat.stat.pw_name == 'root'
|
- seriatim_verify_state_stat.stat.pw_name == 'root'
|
||||||
- seriatim_verify_state_stat.stat.gr_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_commit.stdout == seriatim_expected_commit
|
||||||
- seriatim_verify_source_status.stdout == ''
|
- seriatim_verify_source_status.stdout == ''
|
||||||
- seriatim_verify_version.stdout == 'seriatim version ' ~ seriatim_expected_version
|
- seriatim_verify_version.stdout == 'seriatim version ' ~ seriatim_expected_version
|
||||||
|
|||||||
Reference in New Issue
Block a user